use_rethrow_when_possible 진단: 잡은 예외는 rethrow로 다시 던져요

use_rethrow_when_possible 진단: 잡은 예외는 rethrow로 다시 던져요

Dart 분석기가 내보내는 진단에는 이름이 있어요. use_rethrow_when_possible잡은(caught) 예외를 throw 표현식 대신 rethrow 문으로 다시 던질 수 있을 때 분석기가 알려주는 린트 규칙이에요. rethrow를 쓰면 기존 스택 트레이스가 그대로 유지돼요.

출처: use_rethrow_when_possible

본문

설명

분석기는 잡은 예외를 rethrow 문 대신 throw 표현식으로 던질 때 이 진단을 만들어요.

throw e처럼 잡은 예외를 그대로 다시 던지면 예외가 처음 발생한 위치의 스택 트레이스가 사라져요. rethrow를 쓰면 원래의 스택 트레이스를 보존하면서 다시 던질 수 있는데, 이게 훨씬 더 유용해요.

예시

다음 코드는 잡은 예외 ethrow 표현식으로 던지기 때문에 이 진단을 만들어요.

void f() {
  try {
    // ...
  } catch (e) {
    throw e;
  }
}

흔한 해결 방법

throw 대신 rethrow를 쓰면 돼요.

void f() {
  try {
    // ...
  } catch (e) {
    rethrow;
  }
}

더 알아보기