항상 실패하는 널 검사
항상 실패하는 널 검사
null_check_always_fails 진단은 널 검사 연산자(!)를 썼는데 그 표현식이 어차피 null로만 평가되는 상황을 분석기가 알려 주는 메시지예요. 이 경우 연산자는 언제나 예외를 던지게 돼요. 메시지 그대로 "이 널 검사는 항상 예외를 던질 거예요"라고 알려 주는 거죠.
본문
설명 (Description)
분석기는 값이 null로만 평가될 수 있는 표현식에 널 검사 연산자(!)를 사용했을 때 이 진단을 만들어 내요. 그런 경우 연산자는 항상 예외를 던지는데, 그게 의도한 동작은 아닐 가능성이 크거든요.
예시 (Example)
아래 코드는 g 함수가 항상 null을 반환해서, f 안의 널 검사가 항상 예외를 던지는 상황이에요.
void f() {
g()!;
}
Null g() => null;
흔한 해결책 (Common fixes)
항상 예외를 던지려는 의도라면, 널 검사를 쓰는 대신 명시적인 throw 표현식으로 바꿔서 의도를 더 분명하게 나타내는 게 좋아요.
void f() {
g();
throw TypeError();
}
Null g() => null;
더 알아보기
- Null safety — 널 검사 연산자가 어떻게 동작하는지가 나와요.
- Understanding null safety — 널 안전성의 원리를 더 깊이 설명해요.
- 모든 진단 목록 — 분석기가 알려 주는 다른 진단도 살펴보세요.