如何让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
相关产品推荐
相关产品推荐

