rethrow_outside_catch 진단: rethrow는 catch 절 안에서만 쓸 수 있어요

rethrow_outside_catch 진단: rethrow는 catch 절 안에서만 쓸 수 있어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. rethrow_outside_catchrethrow 문장이 catch 절 밖에 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요. rethrow는 잡아낸 예외를 다시 던지는 역할을 하는데, catch 절 밖에는 잡아낸 예외가 존재하지 않기 때문이에요.

출처: rethrow_outside_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');
}

더 알아보기