try {
} catch (e, s) {
}
다트는 특이하게 stackTrace 객체도 함께 주어진다.
이게 stack trace 이다. 말 그대로 에러의 stack 을 추적하여 고대로 보여주는 것이다.
try {
} catch (e, s) {
} finally {
}
try-catch 가 무조껀 거쳐가는 곳이다.
그럼 문제 try-catch 에 return 이 있다면 finally 가 동작할까?
정답은 "한다" 이다.
특정 에러타입을 잡을 때 사용.
try {
} on UnsupportedError catch (e, s) {
} on TypeError catch (e, s) {
} catch (e, s) {
} finally {
}
void main () {
try {
throw Exception ("뭔가 비즈니스 로직에서 발생 시킴!");
} on UnsupportedError catch (e, s) {
} on TypeError catch (e, s) {
} catch (e, s) {
} finally {
rethrow;
}
}
이렇게 가면 아마 Unhandled Exception 이 발생할 것이다.