only_throw_errors: Exception이나 Error를 상속한 클래스의 인스턴스만 던지세요
only_throw_errors: Exception이나 Error를 상속한 클래스의 인스턴스만 던지세요
throw로 던질 때 문자열 같은 걸 던져도 실제로는 동작하긴 해요. 하지만 그건 제대로 처리해야 할 것을 우회하는 꼼수인 경우가 많아요. only_throw_errors는 Exception이나 Error를 상속한 클래스의 인스턴스만 던지라고 알려주는 린트(lint) 규칙이에요.
본문
상세 설명
dart.core.Error나 dart.core.Exception을 확장한 클래스의 인스턴스만 던지세요. Error나 Exception을 확장하지 않은 인스턴스를 던지는 건 좋지 않은 습관이에요. 보통은 더 제대로 구현해야 할 것을 꼼수로 처리하는 경우가 많아요.
BAD:
void throwString() {
throw 'hello world!'; // LINT
}
GOOD:
void throwArgumentError() {
Error error = ArgumentError('oh!');
throw error; // OK
}
활성화하기
only_throw_errors 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 only_throw_errors를 추가해요.
linter:
rules:
- only_throw_errors
대신 YAML map 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 only_throw_errors: true를 추가해요.
linter:
rules:
only_throw_errors: true