Function std::panic::set_hook 1.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_hook
和 take_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