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

时间:2015-09-17 10:06:53

标签: exception dart try-catch

我知道我可以使用以下内容在dart中捕获特定的Exception类型:

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

但是有没有办法在线捕获多个特定的异常类型而不是使用多个catch语句?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

不,没有,但是您可以这样做:

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