본문 바로가기

IT.모바일/배움

DART 예외 Exception 처리

by FrankUniq 2023. 12. 11.
SMALL

예외(Exception)란 프로그램 실행 중에 발생하는 문제나 오류를 말합니다. 예외 처리는 이런 오류들을 잡아내고 적절히 대응하는 것을 의미합니다.

 

try-catch

  1. try 블록 안의 코드가 실행됩니다. 오류가 발생하면 catch 블록으로 이동합니다.
  2. catch 블록이 오류를 처리합니다 (이 예에서는 오류 메시지를 출력합니다).

 

rethrow

rethrow의 역할은 이미 잡아낸 예외를 다시 던지는 것입니다. 즉, 한 부분에서 문제를 발견하고 처리하려고 했지만, 이 문제를 더 상위 단계에서 다루고 싶을 때 rethrow를 사용합니다.

현재의 catch 블록에서 예외를 다시 발생시키고, 그 예외는 현재 try-catch 블록을 벗어나 상위 레벨로 전달됩니다. 이 때문에, 같은 try-catch 블록 내의 또 다른 catch 블록이 **rethrow**된 예외를 잡지 않습니다.

예를 들어, 프로그램의 한 부분에서 파일을 열려고 했는데 파일이 없어서 오류가 발생했다고 가정해봅시다. 이 오류를 잡아서 로그를 남기고 사용자에게 알림을 보내는 등의 처리를 할 수 있습니다. 그런데 이 오류를 더 상위 단계에서, 예를 들어 어떤 다른 동작을 취하거나 사용자에게 더 자세한 정보를 제공하는 등의 방법으로 다루고 싶다면, rethrow를 사용하여 이 오류를 다시 발생시킵니다.

이렇게 rethrow를 사용하면, 오류 처리의 유연성이 증가합니다. 한 곳에서 오류에 대한 기본적인 처리를 하고, 필요에 따라 상위 단계에서 더 많은 처리를 할 수 있게 됩니다. 하지만 rethrow를 사용할 때는 해당 오류를 처리할 수 있는 상위 레벨의 코드가 있어야 합니다. 그렇지 않으면 프로그램이 오류로 멈출 수 있습니다.

 

finally

finally 블록은 try-catch 구조에서 사용되며, 예외 발생 여부와 관계없이 항상 실행되는 코드 블록입니다. 이는 주로 자원을 해제하거나, 필요한 정리 작업을 수행하는 데 사용됩니다. 예를 들어, 파일을 열거나 네트워크 연결을 닫는 등의 작업이 finally 블록에 적합합니다.

댓글