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_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;
  }
}

더 알아보기