W3cubDocs

/Rust

Function std::panic::set_hook

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

Registers a custom panic hook, replacing any that was previously registered.

The panic hook is invoked when a thread panics, but before the panic runtime is invoked. As such, the hook will run with both the aborting and unwinding runtimes. The default hook prints a message to standard error and generates a backtrace if requested, but this behavior can be customized with the set_hook and take_hook functions.

The hook is provided with a PanicInfo struct which contains information about the origin of the panic, including the payload passed to panic! and the source code location from which the panic originated.

The panic hook is a global resource.

Panics

Panics if called from a panicking thread.

Examples

The following will print "Custom panic hook":

ⓘThis example panics
use std::panic;

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

panic!("Normal panic");

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/panic/fn.set_hook.html