pub struct PanicInfo<'a> { /* private fields */ }
Expand description
Implementations§
source§impl<'a> PanicInfo<'a>
impl<'a> PanicInfo<'a>
sourcepub fn message(&self) -> Option<&Arguments<'_>>
🔬This is a nightly-only experimental API. (panic_info_message
#66745)
pub fn message(&self) -> Option<&Arguments<'_>>
panic_info_message
#66745)如果 core
crate 中的 panic!
宏 (不是 std
中的) 与格式化字符串和一些其他参数一起使用,则返回该消息准备好与 fmt::write
一起使用
sourcepub fn location(&self) -> Option<&Location<'_>>
pub fn location(&self) -> Option<&Location<'_>>
返回有关 panic 起源的位置的信息 (如果有)。
该方法当前将始终返回 Some
,但是在 future 版本中可能会更改。
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");
Runsourcepub fn can_unwind(&self) -> bool
🔬This is a nightly-only experimental API. (panic_can_unwind
#92988)
pub fn can_unwind(&self) -> bool
panic_can_unwind
#92988)返回是否允许 panic 处理程序从发生 panic 的点展开栈。
对于大多数类型的 panic 来说都是如此,除了试图从 Drop
实现或 ABI 不支持的函数展开引起的 panic 外。
即使此函数返回 false,panic 处理程序也可以安全地展开,但这只会导致再次调用 panic 处理程序。