Rust 錯(cuò)誤處理

2023-03-22 15:06 更新
ch09-00-error-handling.md
commit 199ca99926f232ee7f581a917eada4b65ff21754

錯(cuò)誤是軟件中不可否認(rèn)的事實(shí),所以 Rust 有一些處理出錯(cuò)情況的特性。在許多情況下,Rust 要求你承認(rèn)錯(cuò)誤的可能性,并在你的代碼編譯前采取一些行動(dòng)。這一要求使你的程序更加健壯,因?yàn)樗梢源_保你在將代碼部署到生產(chǎn)環(huán)境之前就能發(fā)現(xiàn)錯(cuò)誤并進(jìn)行適當(dāng)?shù)奶幚怼?/p>

Rust 將錯(cuò)誤分為兩大類:可恢復(fù)的recoverable)和 不可恢復(fù)的unrecoverable)錯(cuò)誤。對(duì)于一個(gè)可恢復(fù)的錯(cuò)誤,比如文件未找到的錯(cuò)誤,我們很可能只想向用戶報(bào)告問題并重試操作。不可恢復(fù)的錯(cuò)誤總是 bug 出現(xiàn)的征兆,比如試圖訪問一個(gè)超過數(shù)組末端的為止,因此我們要立即停止程序。

大多數(shù)語言并不區(qū)分這兩種錯(cuò)誤,并采用類似異常這樣方式統(tǒng)一處理他們。Rust 沒有異常。相反,它有 ?Result<T,E>? 類型,用于處理可恢復(fù)的錯(cuò)誤,還有 ?panic!? 宏,在程序遇到不可恢復(fù)的錯(cuò)誤時(shí)停止執(zhí)行。本章首先介紹 ?panic!? 調(diào)用,接著會(huì)講到如何返回 ?Result<T,E>?。此外,我們將探討在決定是嘗試從錯(cuò)誤中恢復(fù)還是停止執(zhí)行時(shí)的注意事項(xiàng)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)