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

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

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

当线程发生 panic 时,但在调用 panic 运行时之前,会调用 panic 钩子。这样,钩子将与中止和展开运行时一起运行。 默认的钩子将消息显示为标准错误,并在需要时生成回溯,但这种行为可以使用 set_hooktake_hook 函数进行自定义。

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

panic 钩子是一个全局资源。

Panics

如果从 panic 线程调用,就会出现 panic。

Examples

以下将打印 “Custom panic hook”:

use std::panic;

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

panic!("Normal panic");
Run