throw_of_invalid_type 진단: 던지는 표현의 타입이 유효하지 않을 때

throw_of_invalid_type 진단: 던지는 표현의 타입이 유효하지 않을 때

분석기가 내보내는 진단에는 이름이 있어요. throw_of_invalid_typethrow 표현식에 쓰인 expression의 타입이 Object에 할당할 수 없을 때 Dart 분석기가 알려주는 진단이에요. null을 던질 수는 없기 때문에, 평가 결과가 null일 수 있는 표현식도 던질 수 없어요.

출처: throw_of_invalid_type 진단

본문

설명

분석기는 throw 표현식 안에 있는 expression의 타입이 Object에 할당할 수 없을 때 이 진단을 만들어요. null을 던지는 것은 유효하지 않기 때문에, 평가 결과가 null일 수 있는 표현식을 쓰는 것도 유효하지 않아요.

예시

다음 코드는 snull일 수 있기 때문에 이 진단을 만들어요.

void f(String? s) {
  throw s;
}

흔한 해결 방법

표현식에 명시적인 null 검사를 붙여요.

void f(String? s) {
  throw s!;
}

더 알아보기