gpt4 book ai didi

error-handling - 如何跟踪错误结果的原因?

转载 作者:行者123 更新时间:2023-11-29 08:30:54 25 4
gpt4 key购买 nike

在编写使用Result类型的代码时,您可能希望用户和开发人员有不同的行为。
在编写能够优雅地处理错误的应用程序时,最好使用Result
在开发过程中,您可能希望“捕获”错误以查看创建错误的代码行,或者在创建Err值时获取堆栈跟踪。
如果您犯了一个独特的错误,搜索它并不困难,但如果错误来自标准库,则该错误可能非常普遍。
例如,如果不手动将每个read更改为file.read()?,就不可能知道哪个file.read().unwrap()命令导致了意外的文件结尾。
是否有一种方便的方法从Result获取堆栈跟踪?
一个弱但可行的解决方案可能是制作一个用于读取的宏,read_in_release_unwrap_in_debug!(file, data)。。。但这感觉很尴尬。
我有一个文件读取器,有许多read调用,其中一个失败。我不确定是哪个。在运行时,我想将结果推回到调用方。为了调试,我希望失败的read调用停止,或者以某种方式让我知道它的行号。

最佳答案

结果本身没有任何回溯信息,但是可以将其添加到自定义错误类型中。
error_chain crate是一个为您生成错误类型的示例,当设置RUST_BACKTRACE环境变量时,您可以免费获得回溯生成。
您也可以直接使用backtrace库并自己动手。

关于error-handling - 如何跟踪错误结果的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155759/

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