我刚开始学习Rust,并且了解到Rust默认使用panic而不是异常。我有一个依赖于外部库的Rust项目,我已经使用match语句处理了代码中所有的unwrap和?,但是我不知道如何处理来自外部库的panic。在其他语言中,我只需捕获由库抛出的异常。由于Rust默认使用panic,因此库不返回异常,而是panic并立即中止线程的执行。理想情况下,我希望能够记录并继续执行,而不是panic和中止。我尝试过以下方法:
- catch_unwind,但这似乎不适用于外部库。
- log-panics crate,该crate使用panic hook记录panic。我成功记录了panic,但无法阻止中止。