예외(Exception)란 프로그램 실행 중에 발생하는 문제나 오류를 말합니다. 예외 처리는 이런 오류들을 잡아내고 적절히 대응하는 것을 의미합니다.
try-catch
- try 블록 안의 코드가 실행됩니다. 오류가 발생하면 catch 블록으로 이동합니다.
- catch 블록이 오류를 처리합니다 (이 예에서는 오류 메시지를 출력합니다).
rethrow
rethrow의 역할은 이미 잡아낸 예외를 다시 던지는 것입니다. 즉, 한 부분에서 문제를 발견하고 처리하려고 했지만, 이 문제를 더 상위 단계에서 다루고 싶을 때 rethrow를 사용합니다.
현재의 catch 블록에서 예외를 다시 발생시키고, 그 예외는 현재 try-catch 블록을 벗어나 상위 레벨로 전달됩니다. 이 때문에, 같은 try-catch 블록 내의 또 다른 catch 블록이 **rethrow**된 예외를 잡지 않습니다.
예를 들어, 프로그램의 한 부분에서 파일을 열려고 했는데 파일이 없어서 오류가 발생했다고 가정해봅시다. 이 오류를 잡아서 로그를 남기고 사용자에게 알림을 보내는 등의 처리를 할 수 있습니다. 그런데 이 오류를 더 상위 단계에서, 예를 들어 어떤 다른 동작을 취하거나 사용자에게 더 자세한 정보를 제공하는 등의 방법으로 다루고 싶다면, rethrow를 사용하여 이 오류를 다시 발생시킵니다.
이렇게 rethrow를 사용하면, 오류 처리의 유연성이 증가합니다. 한 곳에서 오류에 대한 기본적인 처리를 하고, 필요에 따라 상위 단계에서 더 많은 처리를 할 수 있게 됩니다. 하지만 rethrow를 사용할 때는 해당 오류를 처리할 수 있는 상위 레벨의 코드가 있어야 합니다. 그렇지 않으면 프로그램이 오류로 멈출 수 있습니다.
finally
finally 블록은 try-catch 구조에서 사용되며, 예외 발생 여부와 관계없이 항상 실행되는 코드 블록입니다. 이는 주로 자원을 해제하거나, 필요한 정리 작업을 수행하는 데 사용됩니다. 예를 들어, 파일을 열거나 네트워크 연결을 닫는 등의 작업이 finally 블록에 적합합니다.
'IT.모바일 > 배움' 카테고리의 다른 글
유데미 취업 부트캠프 - 디지털 마케팅 1일차 학습 일지 (0) | 2024.06.10 |
---|---|
Flutter UI 위젯 | SingleChildScrollView | RichText (0) | 2023.12.20 |
Dart에서 클래스 캡슐화와 오류 처리 기법 (0) | 2023.12.05 |
안드로이드 스튜디오 단축키 (0) | 2023.12.03 |
생성자 스타일 Named / Positional parameter 선택적 매개변수 (0) | 2023.12.01 |
댓글