rethrow_outside_catch 진단: rethrow는 catch 절 안에서만 쓸 수 있어요
rethrow_outside_catch 진단: rethrow는 catch 절 안에서만 쓸 수 있어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. rethrow_outside_catch는 rethrow 문장이 catch 절 밖에 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. rethrow는 잡아낸 예외를 다시 던지는 역할을 하는데, catch 절 밖에는 잡아낸 예외가 존재하지 않기 때문이에요.
본문
설명
분석기는 rethrow 문장이 catch 절 밖에 있을 때 이 진단을 만들어요. rethrow 문장은 잡아낸 예외를 다시 던지는 데 사용되는데, catch 절 밖에는 잡아낸 예외가 없어요.
예시
다음 코드는 rethrow 문장이 catch 절 밖에 있기 때문에 이 진단을 만들어요.
void f() {
rethrow;
}
흔한 해결 방법
예외를 다시 던지려는 의도라면, rethrow 문장을 catch 절 안에 감싸요.
void f() {
try {
// ...
} catch (exception) {
rethrow;
}
}
새로운 예외를 던지려는 의도라면, rethrow 문장을 throw 표현식으로 바꿔요.
void f() {
throw UnsupportedError('Not yet implemented');
}