本文簡要介紹rust語言中 std::panic::Location.file
的用法。
用法
pub fn file(&self) -> &str
返回產生Panics的源文件的名稱。
&str
,而不是 &Path
返回的名稱是指編譯係統上的源路徑,但直接將其表示為 &Path
是無效的。編譯後的代碼可能在具有不同Path
實現的係統上運行,而不是提供內容的係統,並且此庫當前沒有不同的“host path” 類型。
當“the same” 文件可通過模塊係統中的多個路徑訪問(通常使用#[path = "..."]
屬性或類似屬性)時,會發生最令人驚訝的行為,這可能導致看似相同的代碼從該函數返回不同的值。
Cross-compilation
當宿主平台和目標平台不同時,此值不適合傳遞給Path::new
或類似的構造函數。
例子
use std::panic;
panic::set_hook(Box::new(|panic_info| {
if let Some(location) = panic_info.location() {
println!("panic occurred in file '{}'", location.file());
} else {
println!("panic occurred but can't get location information...");
}
}));
panic!("Normal panic");
相關用法
- Rust Location.line用法及代碼示例
- Rust Location.column用法及代碼示例
- Rust Location.caller用法及代碼示例
- Rust Location用法及代碼示例
- Rust LocalKey用法及代碼示例
- Rust LowerExp用法及代碼示例
- Rust LowerHex用法及代碼示例
- Rust LinkedList.push_front用法及代碼示例
- Rust LinkedList.remove用法及代碼示例
- Rust LineWriter.new用法及代碼示例
- Rust LinkedList.front用法及代碼示例
- Rust Lazy用法及代碼示例
- Rust Lazy.new用法及代碼示例
- Rust LineWriter用法及代碼示例
- Rust LinkedList.is_empty用法及代碼示例
- Rust Lazy.force用法及代碼示例
- Rust LinkedList.back_mut用法及代碼示例
- Rust LineWriter.with_capacity用法及代碼示例
- Rust LinkedList.pop_front用法及代碼示例
- Rust LinkedList.new用法及代碼示例
- Rust LinkedList.clear用法及代碼示例
- Rust LinkedList.iter_mut用法及代碼示例
- Rust LinkedList.drain_filter用法及代碼示例
- Rust LinkedList.back用法及代碼示例
- Rust LinkedList.front_mut用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::panic::Location.file。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。