Struct core::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]
impl<'a> PanicInfo<'a>
pub fn payload(&self) -> &(Any + Send)
[src]
pub fn payload(&self) -> &(Any + Send)
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 message(&self) -> Option<&Arguments>
[src]
pub fn message(&self) -> Option<&Arguments>
If the panic!
macro from the core
crate (not from std
)
was used with a formatting string and some additional arguments,
returns that message ready to be used for example with fmt::write
pub fn location(&self) -> Option<&Location>
[src]
pub fn location(&self) -> Option<&Location>
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]
impl<'a> Debug for PanicInfo<'a>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<'a> Display for PanicInfo<'a>
1.26.0[src]
impl<'a> Display for PanicInfo<'a>
1.26.0
[src]