throw_in_finally
避免在 finally 塊中使用 throw。
詳情
#避免在 finally 塊中丟擲異常。
在 finally 塊中丟擲異常不可避免地會導致難以除錯的意外行為。
差
dart
class BadThrow {
double nonCompliantMethod() {
try {
print('hello world! ${1 / 0}');
} catch (e) {
print(e);
} finally {
throw 'Find the hidden error :P'; // LINT
}
}
}好
dart
class Ok {
double compliantMethod() {
var i = 5;
try {
i = 1 / 0;
} catch (e) {
print(e); // OK
}
return i;
}
}啟用
#要啟用 throw_in_finally 規則,請在 analysis_options.yaml 檔案中 linter > rules 下新增 throw_in_finally。
analysis_options.yaml
yaml
linter:
rules:
- throw_in_finally如果您使用 YAML 對映語法配置 linter 規則,請在 linter > rules 下新增 throw_in_finally: true。
analysis_options.yaml
yaml
linter:
rules:
throw_in_finally: true