【发布时间】:2021-07-23 11:48:05
【问题描述】:
我是 Rust 新手,并且开始了解 Rust 默认为恐慌而不是异常。
我有一个依赖于外部库的 rust 项目。
我已经使用match 语句在我的代码中处理了所有展开和?,但我不确定如何通过外部库处理panic。
在其他语言中,我只会捕获库抛出的异常。
由于 Rust 默认为恐慌,库不返回异常,而是返回 panic,从而中止线程的执行。
理想情况下,我希望记录并继续执行,而不是恐慌和中止。
我尝试了以下方法:
-
catch_unwind,但这看起来我不能在外部库上使用。 -
log-panicscrate,它使用恐慌钩子记录恐慌。我可以记录恐慌,但不能防止中止。
【问题讨论】:
标签: error-handling rust rust-cargo panic