Exception
은 번역하면 예외라는 뜻이 되는데, Dart에서는 이 예외 처리를 위한 다양한 기능을 제공해줍니다. 예외는 프로그램 실행 중에 발생하는 예기치 않은 상황을 나타내며, 프로그램의 흐름을 중단하고 오류를 처리하는데 사용됩니다.
보통 예외가 발생하는 상황은 두 가지로 나눌 수 있습니다.
인간의 실수에 의한 상황(Human error)과 컴퓨터의 내부적인 문제로 인한 상황(Computer error)입니다.
위의 예시들은 예외가 발생하는 일부 상황들입니다. 예외 처리는 프로그램의 안정성을 향상시키고 예기치 못한 상황에 대응할 수 있는 방법을 제공합니다. 다음은 Dart에서의 예외 처리 관련 기능에 대한 설명입니다.
예외(Exception) 처리를 위한 Dart의 try-catch 문법에는 몇 가지 추가적인 기능이 있습니다. 이 기능들은 예외 처리를 더욱 유연하게 할 수 있도록 도와주는데, 지금부터 이 기능들에 대해 설명하겠습니다.
try-catch문은 예외 처리를 위해 사용됩니다. try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, 예외가 발생하면 해당 예외를 처리하기 위해 catch 블록을 사용합니다.
catch 블록은 예외의 타입과 일치하는지 확인하고, 일치하는 경우에만 해당 예외를 처리하는 코드를 실행합니다.
rethrow는 현재 처리 중인 예외를 다시 던지는데 사용됩니다.
catch 블록 내에서 예외를 처리한 후에 rethrow를 호출하면, 예외를 현재 블록에서 던질 수 있습니다. 이를 통해 상위 호출자에게 예외를 전파할 수 있습니다.
on 키워드를 사용해 특정 예외 타입에 대한 예외 처리를 수행할 수 있습니다. catch 블록에서 예외 타입을 명시하지 않고 on 키워드를 사용하면, 해당 블록은 모든 예외에 대해 실행됩니다.
finally 블록은 try-catch문의 실행 후 항상 실행되는 코드를 포함합니다. finally 블록은 예외 발생 여부와 관계없이 항상 실행됩니다.
예외 클래스를 직접 정의하는 방법도 있는데, 사용자가 만든 class에 Exception 인터페이스를 implements하고 toString을 override해서 if문으로 특정 조건일 때 Exception을 반환
한다고 하면, 직접 만든 Exception을 사용할 수 있다.