throw_in_finally 진단: finally 블록에서 throw 사용
throw_in_finally 진단: finally 블록에서 throw 사용
finally 블록은 try/catch의 성공 여부와 관계없이 항상 실행되는 부분이에요. 여기서 예외를 던지면 기존에 진행되던 흐름을 덮어써 버릴 수 있어요. throw_in_finally는 finally 블록 안에서 throw를 쓰는 걸 막아 주는 린트 진단이에요.
출처: throw_in_finally
본문
설명
분석기는 finally 블록 안에서 throw 문을 발견하면 이 진단을 만들어요.
예시
다음 코드는 finally 블록 안에 throw 문이 있어서 이 진단을 만들어요.
void f() {
try {
// ...
} catch (e) {
// ...
} finally {
throw 'error';
}
}
흔한 해결 방법
throw 문이 finally 블록 안에 없도록 코드를 다시 작성해요.
void f() {
try {
// ...
} catch (e) {
// ...
}
throw 'error';
}