finallyブロック内の制御フロー
finally
ブロック内での制御フローは避けてください。
このルールは Dart 2.0 以降で使用できます。
詳細
#避けるべき: finally
ブロックから制御フローを抜けること。
finally
ブロック内で制御フローを使用すると、デバッグが困難な予期しない動作が発生する可能性があります。
悪い例
dart
class BadReturn {
double nonCompliantMethod() {
try {
return 1 / 0;
} catch (e) {
print(e);
} finally {
return 1.0; // LINT
}
}
}
悪い例
dart
class BadContinue {
double nonCompliantMethod() {
for (var o in [1, 2]) {
try {
print(o / 0);
} catch (e) {
print(e);
} finally {
continue; // LINT
}
}
return 1.0;
}
}
悪い例
dart
class BadBreak {
double nonCompliantMethod() {
for (var o in [1, 2]) {
try {
print(o / 0);
} catch (e) {
print(e);
} finally {
break; // LINT
}
}
return 1.0;
}
}
良い例
dart
class Ok {
double compliantMethod() {
var i = 5;
try {
i = 1 / 0;
} catch (e) {
print(e); // OK
}
return i;
}
}
使用方法
#control_flow_in_finally
ルールを有効にするには、analysis_options.yaml
ファイルの linter > rules に control_flow_in_finally
を追加してください。
analysis_options.yaml
yaml
linter:
rules:
- control_flow_in_finally
特に明記されていない限り、このサイトのドキュメントは Dart 3.5.3 を反映しています。ページの最終更新日: 2024-07-03. ソースを表示 または 問題を報告する。