# 1.10.0[−][src]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":

ⓘ

    use std::panic;

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

    panic!("Normal panic");

Run