use_rethrow_when_possible 진단: 잡은 예외는 rethrow로 다시 던져요
use_rethrow_when_possible 진단: 잡은 예외는 rethrow로 다시 던져요
Dart 분석기가 내보내는 진단에는 이름이 있어요. use_rethrow_when_possible은 잡은(caught) 예외를 throw 표현식 대신 rethrow 문으로 다시 던질 수 있을 때 분석기가 알려주는 린트 규칙이에요. rethrow를 쓰면 기존 스택 트레이스가 그대로 유지돼요.
본문
설명
분석기는 잡은 예외를 rethrow 문 대신 throw 표현식으로 던질 때 이 진단을 만들어요.
throw e처럼 잡은 예외를 그대로 다시 던지면 예외가 처음 발생한 위치의 스택 트레이스가 사라져요. rethrow를 쓰면 원래의 스택 트레이스를 보존하면서 다시 던질 수 있는데, 이게 훨씬 더 유용해요.
예시
다음 코드는 잡은 예외 e를 throw 표현식으로 던지기 때문에 이 진단을 만들어요.
void f() {
try {
// ...
} catch (e) {
throw e;
}
}
흔한 해결 방법
throw 대신 rethrow를 쓰면 돼요.
void f() {
try {
// ...
} catch (e) {
rethrow;
}
}