當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Location.file用法及代碼示例


本文簡要介紹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-lang.org大神的英文原創作品 std::panic::Location.file。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。