作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Java 中,我可以通过将另一个异常传递给新异常来实现异常链接,如下所示:
try {
doSomething();
} catch (Exception1 ex) {
throw new Exception2("Got exception1 while doing the thing", ex);
}
我想在 Dart 中实现类似的结果。我该怎么做?
最佳答案
一种方法是这样的:
void main(){
try {
try {
throw 'exception 1';
} catch (e) {
throw LinkedException('exception 2',e);
}
} catch (e) {
throw LinkedException('exception 3',e);
}
}
class LinkedException implements Exception {
final String cause;
final exception;
LinkedException(this.cause,[this.exception]);
@override
String toString() => '$cause <- $exception';
}
如果你捕获第三个异常并打印它,你会得到这样的结果:
exception 3 <- exception 2 <- exception 1
Dartpad 可运行示例:https://dartpad.dev/4000ed0f1e170615923f6c1e7f5f468a
关于dart - 如何在 Dart 中实现异常链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65129803/
我是一名优秀的程序员,十分优秀!