`dead_code_catch_following_catch` — `catch` 다음에 오는 `catch` 절
dead_code_catch_following_catch — catch 다음에 오는 catch 절
catch (e)나 on Object catch (e)처럼 모든 객체를 잡는 절 뒤에 다른 catch 절이 오면, 그 뒤의 절은 절대 선택되지 않아요. 분석기가 이 진단으로 알려줘요.
본문
catch (e)나 on Object catch (e) 형태의 catch 절 뒤에 있어서 실행될 수 없는 catch 절을 발견하면 이 진단이 발생해요. 던져진 객체에 첫 번째로 매칭되는 catch 절이 선택되는데, 두 형태 모두 어떤 객체든 매칭되기 때문에 뒤에 오는 catch 절은 선택될 일이 없어요.
예시
아래 코드는 이 진단을 발생시켜요.
void f() {
try {
// ...
} catch (e) {
// Not reached.
} on String {
// ...
}
}
흔한 해결 방법
그 절이 선택되어야 한다면, 일반적인 절보다 앞으로 옮겨 주면 돼요.
void f() {
try {
// ...
} on String {
// ...
} catch (e) {
// ...
}
}
그 절이 선택될 필요가 없다면, 그냥 제거해 주면 돼요.
void f() {
try {
// ...
} catch (e) {
// ...
}
}