항상 실패하는 널 검사

항상 실패하는 널 검사

null_check_always_fails 진단은 널 검사 연산자(!)를 썼는데 그 표현식이 어차피 null로만 평가되는 상황을 분석기가 알려 주는 메시지예요. 이 경우 연산자는 언제나 예외를 던지게 돼요. 메시지 그대로 "이 널 검사는 항상 예외를 던질 거예요"라고 알려 주는 거죠.

출처: null_check_always_fails

본문

설명 (Description)

분석기는 값이 null로만 평가될 수 있는 표현식에 널 검사 연산자(!)를 사용했을 때 이 진단을 만들어 내요. 그런 경우 연산자는 항상 예외를 던지는데, 그게 의도한 동작은 아닐 가능성이 크거든요.

예시 (Example)

아래 코드는 g 함수가 항상 null을 반환해서, f 안의 널 검사가 항상 예외를 던지는 상황이에요.

void f() {
  g()!;
}

Null g() => null;

흔한 해결책 (Common fixes)

항상 예외를 던지려는 의도라면, 널 검사를 쓰는 대신 명시적인 throw 표현식으로 바꿔서 의도를 더 분명하게 나타내는 게 좋아요.

void f() {
  g();
  throw TypeError();
}

Null g() => null;

더 알아보기