相关疑难解决方法(0)

使用panic :: catch_unwind时,在Rust中抑制panic输出

我正在panic::catch_unwind惊慌失措:

use std::panic;

fn main() {
    let result = panic::catch_unwind(|| {
        panic!("test panic");
    });

    match result {
        Ok(res) => res,
        Err(_) => println!("caught panic!"),
    }
}
Run Code Online (Sandbox Code Playgroud)

(游乐场)

这似乎工作得很好,但我仍然得到了恐慌的输出到stdout.我想这只打印出来:

caught panic!
Run Code Online (Sandbox Code Playgroud)

代替

thread '<main>' panicked at 'test panic', <anon>:6
note: Run with `RUST_BACKTRACE=1` for a backtrace.
caught panic!
Run Code Online (Sandbox Code Playgroud)

exception rust

12
推荐指数
2
解决办法
1822
查看次数

从 Rust 钩子中的恐慌中检索回溯?

我的应用程序需要通过标准输出将日志以 JSON 格式发送到 fluentd。
当我试图处理恐慌并将 a&std::panic::PanicInfo作为 JSON安排时std::panic::set_hook,我找不到从 a 中检索回溯的方法&PanicInfo

有没有办法从自定义钩子中的恐慌中检索回溯?

logging backtrace panic rust

7
推荐指数
2
解决办法
2291
查看次数

标签 统计

rust ×2

backtrace ×1

exception ×1

logging ×1

panic ×1