std::panic::set_hook - Rust
Description: API documentation for the Rust `set_hook` fn in crate `std`.
Keywords: rust, rustlang, rust-lang, set_hook

# Function std::panic::set_hook 1.10.0 [−] [src]

    pub fn set_hook(hook: Box<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

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
↑
  Move up in search results
↓
  Move down in search results
↹
  Switch tab
⏎
  Go to active search result
+ / -
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)