Function std::panic::set_hook1.10.0[][src]

pub fn set_hook(hook: Box<dyn Fn(&PanicInfo<'_>) + Sync + Send + 'static>)
Expand description

注册一个自定义 panic hook,替换以前注册的任何 panic。

panic hook 在线程 panics 时但在调用 panic 运行时之前被调用。这样,hook 将与终止和展开运行时一起运行。 默认的 hook 将消息显示为标准错误,并在请求时生成回溯,但是可以使用 set_hooktake_hook 函数自定义此行为。

hook 提供了一个 PanicInfo 结构体,该结构体包含有关 panic 的起源的信息,包括传递给 panic! 的有效负载和 panic 起源的源代码位置。

panic hook 是一个资源。

Panics

Panics (如果从紧急恐慌线程调用)。

Examples

以下将打印 “Custom panic hook”:

use std::panic;

panic::set_hook(Box::new(|_| {
    println!("Custom panic hook");
}));

panic!("Normal panic");
Run