finally와 확실한 정리
오류가 발생하든 그렇지 않든 코드를 실행합니다
finally와 확실한 정리은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
정리는 항상 실행되어야 합니다
코드가 실패하더라도 열린 파일과 연결은 닫아야 합니다. Dart는 항상 실행되는 정리를 위해 finally를 제공합니다. 🧹
finally 블록
finally 블록은 어떤 상황에서도 try와 catch 다음에 실행됩니다. 성공하든 실패하든 그 안의 코드는 항상 실행됩니다.
try {
work();
} finally {
cleanup();
}성공 후 실행
try 블록이 오류 없이 끝나면 Dart는 다음으로 넘어가기 전에 바로 이어서 마무리 블록을 실행합니다.
catch 후 실행
예외가 포착되면 catch 블록이 실행된 다음 마무리 블록도 실행됩니다. 두 블록은 이 순서대로 실행됩니다.
try {
fail();
} catch (e) {
log(e);
} finally {
close();
}catch가 없어도 실행
마무리 블록만 사용하고 catch는 생략한 try를 사용할 수 있습니다. 예외는 계속 전파되지만, 전파되는 과정에서 정리 작업이 먼저 실행됩니다.
try {
risky();
} finally {
release();
}그냥 중복하면 안 되는 이유
마무리 블록이 없다면 성공 경로와 오류 경로에 정리 작업을 각각 복사해야 합니다. 마무리 블록 하나를 사용하면 한곳에서 처리할 수 있습니다.
다시 던지기 전 정리
예외가 포착되지 않은 채 계속 전파되더라도 마무리 블록이 먼저 실행되므로 리소스가 절대 누수되지 않습니다.
파일 안전하게 닫기
대표적인 사용 방법은 try에서 리소스를 열고 사용한 다음, 읽기에 성공했는지와 관계없이 마무리 블록에서 닫는 것입니다.
try {
file.read();
} finally {
file.close();
}마무리 블록에서 반환하지 않기
마무리 블록 안의 반환은 앞서 실행된 반환이나 예외를 무시합니다. 마무리 블록은 제어 흐름이 아니라 정리 작업에만 사용하십시오.
실행 순서
순서를 기억하십시오. try가 실행되고, 필요하면 catch가 실행된 다음, 마지막으로 마무리 블록이 실행됩니다. 정리 작업은 항상 블록을 마무리합니다.
전체 try-catch-마무리
이 구조는 보호된 작업, 오류 처리, 마지막에 반드시 실행되는 마무리 정리 작업을 모두 결합합니다.
try {
open();
} catch (e) {
print(e);
} finally {
close();
}빠른 확인
마무리 블록은 언제 실행됩니까?
복습
이제 성공, 포착된 오류, 포착되지 않은 예외 던지기 등 모든 경로에서 반드시 실행되는 정리 작업에 마무리 블록을 사용할 수 있습니다. 누수도 없습니다. 🔒
자주 묻는 질문
“finally와 확실한 정리” 강의는 무료인가요?
네 — “finally와 확실한 정리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“finally와 확실한 정리”에서 뭘 배우나요?
오류가 발생하든 그렇지 않든 코드를 실행합니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Dart Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“finally와 확실한 정리” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- throw, try, catch
- on 절과 예외 자료형
- finally와 확실한 정리
- 사용자 지정 예외와 rethrow