当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。