目錄

avoid_catches_without_on_clauses

避免使用沒有 on 子句的 catch。

此規則從 Dart 2.0 開始提供。

詳細資訊

#

出自有效的 Dart

避免使用沒有 on 子句的 catch。

使用沒有 on 子句的 catch 子句會讓您的程式碼容易遇到不會被拋出(因此不會被注意到)的意外錯誤。

不良示範

dart
try {
 somethingRisky()
} catch(e) {
  doSomething(e);
}

良好示範

dart
try {
 somethingRisky()
} on Exception catch(e) {
  doSomething(e);
}

允許一些例外情況

  • 如果 catch 的主體重新拋出例外狀況。
  • 如果捕獲的例外狀況「直接用於」Future.errorCompleter.completeErrorFlutterError.reportError 的引數中,或者任何回傳類型為 Never 的函式。
  • 如果捕獲的例外狀況「直接用於」新的 throw 表達式中。

在這些情況下,「直接使用」表示例外狀況在相關程式碼(例如在引數內)中被引用。如果例外狀況變數在相關程式碼之前被引用,例如為了實例化一個包裝例外狀況,則該變數不是「直接使用」。

用法

#

若要啟用 avoid_catches_without_on_clauses 規則,請在您的 analysis_options.yaml 檔案的 linter > rules 下新增 avoid_catches_without_on_clauses

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_catches_without_on_clauses