使用一个 catch 表达式捕获 Dart 中的多个特定异常类型

Catch multiple specific exception types in Dart with one catch expression

我知道我可以使用以下命令在 dart 中捕获特定的异常类型:

try {
  ...
} on SpecificException catch(e) {
  ...
}

但是有没有一种方法可以在线捕获多个特定的异常类型,而不是使用多个 catch 语句?

on xxx catch(e) { 行只能指定一种类型,或者使用 catch(e) 捕获所有(剩余的 - 见下文)异常类型。 on 之后的类型用作 catch(e) 的参数类型。为这个参数设置一组类型不会很好。

try {
  ...
} on A catch(e) {
  ...
} on B catch(e) {
  ...
} catch(e) { // everything else
}

不,没有,但你可以这样做:

try {
  ...
} catch (e) {
  if (e is A || e is B) {
    ...
  } else {
    rethrow;
  }
}