You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Rust的expect输出友好错误字符串而非错误类型?

如何让Rust中expect输出包含友好错误字符串?

我想编写简洁的验证错误处理代码,同时让错误输出包含友好的字符串,请问能否实现?

用match做错误处理可以得到清晰的错误字符串:

let url = match Url::parse("sdfsf") {
    Ok(url) => url,
    Err(e) => {
        eprintln!("Error parsing URL: {}", e);
        return;
    }
};
// 输出:
// Error parsing URL: relative URL without a base

但expect只会输出错误类型的标识符:

let url = Url::parse("sdfsf").expect("Error parsing URL");
// 输出:
// thread 'main' panicked at src\main.rs:41:35:
// Error parsing URL: RelativeUrlWithoutBase

我试过修改panic处理逻辑,但没办法从钩子函数里访问具体的错误内容。

目前我找到最简洁的实现友好错误信息的方式是用unwrap_or_else:

let url = Url::parse("sdfsf").unwrap_or_else(|e| {
    panic!("Error parsing URL: {}", e);
});
// 输出:
// thread 'main' panicked at src\main.rs:33:9:
// Error parsing URL: relative URL without a base

请问还有其他方法吗?

内容的提问来源于stack exchange,提问作者idbrii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:18:29