gpt4 book ai didi

exception-handling - 在 D 中捕捉的替代方法?

转载 作者:行者123 更新时间:2023-12-04 01:50:09 32 4
gpt4 key购买 nike

我在看 Three Cool Things About D - The Case for the D Programing Language 它基本上说不要使用 try/catch/finally(关于 38mark。39:30 说你不想看它生成的 try/catch),使用范围(失败)更好(还有退出和成功) .

我的问题是当您想检查异常并根据异常执行操作时会发生什么,例如提醒用户磁盘没有空间或将 url 标记为 404(.NET webclient/webrequest 对此抛出)或稍后重试,如果出现 500 错误代码。我该怎么做?我必须使用 try/catch 还是有其他方法?

最佳答案

scope语句允许您在退出声明它们的范围时运行代码。scope(success)正常退出作用域时运行。 scope(failure)由于抛出异常而退出作用域时运行。 scope(exit)无论您如何退出范围,都在退出范围时运行。它们都不允许您访问抛出的任何异常。它们只允许您在退出当前范围时根据退出该范围的方式运行代码。

所以,本质上,如果你会捕捉到异常,做一些事情,然后再次抛出它而不关心异常实际上是什么,scope(failure)可以用来代替 catch , 和 scope(exit)可以用来代替 finally .但是,如果您确实需要异常,那么您将不得不使用 try 来捕获它。 - catch堵塞。 scope根本不让您访问异常,因此您不能使用 scope语句,如果你想真正做一些抛出异常的事情。然而,scope当您不在乎异常实际上是什么时效果很好。

关于exception-handling - 在 D 中捕捉的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4825670/

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