case_block_not_terminated 진단: case 블록이 제대로 끝나지 않았을 때
case_block_not_terminated 진단: case 블록이 제대로 끝나지 않았을 때
case 블록의 마지막 문장은 break, continue, rethrow, return, throw 같은 종료자(terminator)여야 해요. 그런데 switch 문의 case 블록이 그런 종료자 없이 끝나면 Dart 분석기가 case_block_not_terminated 진단을 알려줘요.
본문
설명
분석기는 case 블록의 마지막 문장이 필수 종료자 중 하나가 아닐 때 이 진단을 만들어요. 필수 종료자는 break, continue, rethrow, return, throw예요.
예시
다음 코드는 case 블록이 대입(assignment)으로 끝나기 때문에 이 진단을 만들어요.
void f(int x) {
switch (x) {
case 0:
x += 2;
default:
x += 1;
}
}
흔한 해결 방법
필수 종료자 중 하나를 추가해요.
void f(int x) {
switch (x) {
case 0:
x += 2;
break;
default:
x += 1;
}
}