코드를 치다보면 Error를 발생할때가 많은데 그때마다 특정 코드를 실행하거나 print문을 작성하여 error형태를 잡는다.
1번 try-catch문을 가장 많이 쓰인다. (catch문에서 모든 error가 넘어가기때문에...)
1. try - catch 문
2. finally 문
3. on 문
4. throw / rethrow 문
1~2. try-catch문 예시 ( + finally 문 )
void main() {
int num1 = 5;
try {
/// 예외가 발생할 것으로 예상되는 코드를 넣는다.
print( num1 / 0 );
} catch(error, stack){
/// 에러가 발생했을떄 실행하고자 하는 코드를 넣는다.
print(error);
print(stack);
} finally {
/// 예외가 발생했던, 하지 않았던 try & catch문 이후에 실행하고자 하는 코드를 넣는다.
print('예외처리 문을 지나고나서 실행되는 코드입니다.');
}
}
3~4. on, throw, rethrow문
On문 : 특정 Error에 대한 처리를 직접 처리하고싶을때 사용된다.
throw문 : 해당 문에서 바로 원하는 형태의 Error를 던져주고 넘어간다.
rethrow : 이미 나왔던 Error의 형태문을 다시 던져주는 형태가 된다.
밑에 있는 코드는 throw문이 없는 예시
void main() {
try {
/// 예외가 발생할 것으로 예상되는 코드를 삽입
print( 100 / 0 );
} on UnsupportedError catch(e, s){
print('~/ 해당 연산자는 0으로 나눌 수 없습니다.');
} on TypeError catch(e, s){
print('Null 값이 참조 되었습니다.');
} catch(e, s){
print('모르는 에러가 발생했습니다.');
}
print('모든 try-catch문이 끝나고 실행되는 print문 입니다.');
}
throw문을 쓰는 예시
해당코드는 throw문때문에 바로 catch안에 있는 코드가 실행된다.
void main() {
try {
throw Exception('Unknown Error');
} on UnsupportedError catch(e, s){
print('/ 해당 연산자는 0으로 나눌 수 없습니다.');
} on TypeError catch(e, s){
print('Null 값이 참조 되었습니다.');
} catch(e, s){
print('모르는 에러가 발생했습니다.');
// 이미 잡아놓은 Error를 다시 던져주는 형태이다.
rethrow;
}
print('모든 try-catch문이 끝나고 실행되는 print문 입니다.');
}
'Dart & Flutter' 카테고리의 다른 글
[Dart] switch와 if문을 활용하여 가위바위보 게임 만들기 (0) | 2024.05.20 |
---|---|
[Dart] 비동기, 동기 프로그래밍 (0) | 2024.05.02 |
[Dart] Dart 기본 함수, 반복문, 분기문 (0) | 2024.05.01 |
FVM(Flutter Version Management)로 version 관리하기 (0) | 2024.04.29 |
Flutter 기본 환경 세팅하기 (Flutter SDK, Android Studio, Xcode) (0) | 2024.04.27 |