[dart] 제어문을 이용한 에러 핸들링
프로그래밍 중에는 예기치 못한 상황에 대비하여 에러 핸들링이 필요합니다. Dart 언어에서는 다양한 제어문을 이용하여 에러를 처리할 수 있습니다. 이번 포스트에서는 try-catch
, try-catch-finally
, on
, rethrow
, 그리고 assert
등을 사용하여 에러 핸들링을 다루어 보겠습니다.
try-catch문
가장 기본적인 에러 핸들링 구문은 try-catch
문입니다. 에러 발생 가능한 코드를 try
블록 안에 배치한 후, 발생하는 에러를 catch
블록 안에서 처리할 수 있습니다.
try {
// 에러가 발생할 수 있는 코드
throw Exception('예상치 못한 에러가 발생했습니다!');
} catch (e) {
// 에러 처리 로직
print('에러가 발생했습니다: $e');
}
try-catch-finally문
try-catch-finally
문은 try-catch
문에 finally
블록을 추가한 것으로, 무조건 실행되어야 하는 코드를 포함할 때 유용합니다.
try {
// 에러가 발생할 수 있는 코드
} catch (e) {
// 에러 처리 로직
} finally {
// 항상 실행되어야 하는 코드
}
on 키워드
특정 타입의 에러만을 처리하고 싶을 때 on
키워드를 사용할 수 있습니다. 이는 catch
블록 대신 사용됩니다.
try {
// 에러가 발생할 수 있는 코드
throw FormatException('형식 에러가 발생했습니다');
} on FormatException {
// FormatException에 대한 에러 처리 로직
print('형식 에러가 발생했습니다!');
}
rethrow 문
현재 발생한 에러를 잡아 다시 던질 때 rethrow
문을 사용할 수 있습니다. 이는 에러를 잡지 않고 상위 레벨로 전파할 때 유용합니다.
try {
// 에러가 발생할 수 있는 코드
} catch (e) {
// 에러 처리 로직
rethrow; // 현재 에러를 잡아 다시 던짐
}
assert 문
프로그램이 올바르게 동작하는지 확인하기 위해 assert
문을 사용할 수 있습니다. 만약 조건이 거짓이라면 에러가 발생하게 됩니다.
void buyFruits(int count) {
assert(count > 0, 'count는 0보다 커야 합니다!');
// 나머지 코드
}
이렇게 다양한 제어문을 이용하여 Dart에서의 에러 핸들링을 할 수 있습니다. 프로그램의 안정성과 견고성을 위해 에러 핸들링에 충분한 주의를 기울이는 것이 중요합니다.