gpt4 book ai didi

dart - 如何在 Dart 中实现异常链?

转载 作者:行者123 更新时间:2023-12-05 06:08:31 24 4
gpt4 key购买 nike

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com