使用一个 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;
}
}
我知道我可以使用以下命令在 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;
}
}