finally 절에서는 return, break, continue를 쓰지 마세요
finally 절에서는 return, break, continue를 쓰지 마세요
finally 절에 return, break, continue 문이 들어가 있을 때 분석기가 이 lint 진단을 띄워줘요.
본문
finally 절에 return, break, continue 문이 들어가 있으면 분석기가 이 진단을 만들어요. finally는 예외 처리와 상관없이 반드시 실행되는 블록이라, 여기서 흐름을 제어하면 예상 밖의 동작으로 이어지기 쉬워요.
다음 코드는 finally 블록 안에 return 문이 있어서 이 진단이 나와요.
void f(void Function() g) {
try {
g();
} catch (e) {
print(e);
} finally {
return;
}
}
고치는 방법
그 문이 필요 없다면 그냥 제거하고, 블록이 비게 되면 finally 절도 함께 지우면 돼요.
void f(void Function() g) {
try {
g();
} catch (e) {
print(e);
}
}
그 문이 필요하다면, finally 블록 밖으로 옮기면 돼요.
void f(void Function() g) {
try {
g();
} catch (e) {
print(e);
}
return;
}