[Dart] Exception & Error

Jinwook Kim·2024년 10월 27일

Dart

목록 보기
6/7
post-thumbnail

다트에서는 오류를 나타내는 방식으로 Exception(예외)와, Error(에러)를 사용한다. 이 두 가지 개념에는 분명한 차이점이 있다.

1. Exception (예외)

Exception은 예상 가능한 오류 상황을 나타낸다. 예를 들어, 파일을 열 때 해당 파일이 없는 경우에 발생하는 오류를 들 수 있다. 개발자는 이러한 상황을 미리 파악하여 적절히 처리할 수 있는데, 다트에서는 try-catch 구문을 이용하여 이러한 예외 상황을 처리할 수 있다.

void main() {
  try {
    var result = 10 ~/ 0; // 여기서 DivisionByZeroException 발생
  } catch (error) {
    print('예외 발생: $error');
  } finally {
    print('항상 실행되는 코드');
  }
}

예외는 개발자가 처리할 수 있는 상황이기에, throw 키워드를 통해 일부러 발생시킬 수도 있고, 사용자 정의 예외 상황 또한 만들 수 있다.

class CustomException implements Exception {
  final String message;
  
  CustomException(this.message);
  
  
  String toString() => message;
}

사용자 정의 예외를 발생시킬 때는 throw 키워드를 사용한다.

void someFunction() {
  throw CustomException('Something went wrong!');
}

2. Error (에러)

예기치 않은 오류 상황을 나타낸다. 프로그램의 버그나 심각한 문제로 인해 발생하는 오류 상황으로 개발자는 이러한 에러를 대부분 예측할 수 없고, 또 처리하지 않아야 한다. 예를 들어, 메모리 부족이나 스택 오버플로우와 같은 상황이 이에 해당한다. 에러는 잡는다 하더라도 프로그램 진행의 근본적인 문제를 해결하지 않는다.

요약하면, 예외는 예측 가능한 오류로서, 개발자가 사전에 try-catch 구문 등을 통해 적절히 처리할 수 있지만, 에러는 개발자가 예측할 수 없는 오류로서, 일반적으로 처리할 수 있는 방법이 거의 없다고 할 수 있다.

profile
200 Everything Okay.

0개의 댓글