在 Rust 程式中,我Result使用 aString作為其Error型別:
fn foo() -> Result<String, String>
我作為錯誤回傳的字串看起來像這樣:
lorem\nipsum
現在我呼叫我的函式并將其解包:
foo.unwrap();
現在當foo()回傳 an時Error,它會列印如下錯誤:
lorem\nipsum
但是,我實際上想看到的是以下錯誤訊息:
lorem
ipsum
據我所知,這種行為的原因是,在字串的情況下unwrap(),呼叫debug()而不是display()which 的實作方式不同(新行顯示為新行,但除錯列印為“\n”) .
有沒有一種快速的方法可以 unwrap() 我的結果以它呼叫的方式display()而不是debug()讓列印的錯誤實際顯示換行符而不是“\n”?
uj5u.com熱心網友回復:
unwrap不應該顯示漂亮的錯誤訊息。當出現unwrap恐慌時,應該是出現了可怕的錯誤。如果你想列印出String里面的內容,Err你可以將它列印到stderrwitheprintln!然后正確處理錯誤:
if let Err(e) = foo() {
eprintln!("{}", e);
// handle the error properly here
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/534870.html
標籤:调试锈错误处理展示展开
