# Struct std::panic::PanicInfo 1.10.0 [−] [src]

    pub struct PanicInfo<'a> { /* fields omitted */ }

A struct providing information about a panic.

`PanicInfo` structure is passed to a panic hook set by the `set_hook` function.

# Examples

    use std::panic;

    panic::set_hook(Box::new(|panic_info| {
        println!("panic occurred: {:?}", panic_info.payload().downcast_ref::<&str>().unwrap());
    }));

    panic!("Normal panic");Run

## Methods

### `impl<'a> PanicInfo<'a>`
[src]

#### `pub fn payload(&self) -> &(Any + Send)`
[src]

Returns the payload associated with the panic.

This will commonly, but not always, be a `&'static str` or `String`.

# Examples

    use std::panic;

    panic::set_hook(Box::new(|panic_info| {
        println!("panic occurred: {:?}", panic_info.payload().downcast_ref::<&str>().unwrap());
    }));

    panic!("Normal panic");Run

#### `pub fn location(&self) -> Option<&Location>`
[src]

Returns information about the location from which the panic originated, if available.

This method will currently always return `Some`, but this may change in future versions.

# Examples

    use std::panic;

    panic::set_hook(Box::new(|panic_info| {
        if let Some(location) = panic_info.location() {
            println!("panic occurred in file '{}' at line {}", location.file(),
                location.line());
        } else {
            println!("panic occurred but can't get location information...");
        }
    }));

    panic!("Normal panic");Run

## Trait Implementations

### `impl<'a> Debug for PanicInfo<'a>`
[src]

#### `fn fmt(&self, __arg_0: &mut Formatter) -> Result`
[src]

Formats the value using the given formatter.

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  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`)