Rust教學
Rust下載和安裝
Rust簡介
Rust Hello World
Rust的特點
Rust註釋
Rust開發環境安裝
Rust文檔
Rust第一個程序
Rust格式化打印
Rust調試
Rust顯示
測試用例:列表
Rust格式化
Rust原語
Rust常量和運算符
Rust元組
Rust數組和切片
Rust自定義類型
Rust結構
Rust可視性
Rust枚舉
Rust常量
Rust變量綁定
Rust變量綁定-可變性
Rust變量綁定-範圍和陰影
Rust變量綁定-聲明
Rust類型轉換
Rust類型轉換 - 字面量
Rust類型轉換-推導
Rust類型轉換 - 別名
Rust表達式
Rust if/else語句
Rust循環
Rust嵌套和標籤
Rust while循環
Rust for和範圍
Rust匹配/match
Rust匹配析構元組
Rust解構枚舉
Rust指針和引用
Rust解構結構
Rust Guards
Rust綁定
Rust if let
Rust while let
Rust函數
Rust方法
Rust閉包
Rust捕捉
Rust作爲輸入參數
Rust匿名類型
Rust輸入函數
Rust作爲輸出參數
Rust錯誤處理
錯誤處理是Rust確定出錯的可能性並確認在代碼進行編譯之前採取某些操作的機制。
此機制使程序更加健壯,因爲能夠在部署生產代碼之前發現並處理錯誤。
Rust編程語言不包含異常。
Rust中有兩種類型的錯誤:
- 不可恢復的錯誤。
- 可恢復的錯誤。
- 可恢復的錯誤: 可恢復的錯誤是報告給用戶的錯誤,用戶可以重試該操作。 完全停止該過 程的可恢復錯誤並不嚴重。 它由
Result <T,E>
表示。 可恢復錯誤的示例是「找不到文件」。T&E
是通用參數。
T->
這是一種值,在成功的情況下返回一個’OK’變量。
E->
這是一種錯誤類型,在具有Err
變體的故障情況下返回。 - 不可恢復的錯誤: 當Rust報告一個不可恢復的錯誤時,那就是
!
宏停止執行程序。例如:「除以零」是不可恢復錯誤的示例。
可恢復錯誤與不可恢復錯誤
可恢復錯誤是可以某種方式恢復的錯誤,而不可恢復錯誤是無法以任何方式恢復的錯誤。
下面來看一下預期行爲的情景:
"100".parse();
在上述情況下,"100"
是一個字符串,因此不確定上述情況是否有效,這是預期的行爲。 因此,它是一個可恢復的錯誤。
意外的行爲
assert! :當想要聲明它是真時使用。 如果它不正確和錯誤,則程序停止執行。
下面來看一個簡單的例子:
fn main()
{
let x : bool = false;
assert!(x==true);
}
執行上面示例代碼,得到以下結果:
在上面的例子中,x
的值爲false
,assert!
斷言中的條件爲假。 因此,在運行時assert!
調用panic!
。
unreachable! :它用於無法訪問的代碼。 此宏很有用,因爲編譯器無法確定無法訪問的代碼。 在運行時由 unreachable! 執行。
下面來看一個簡單的例子:
enum Value
{
Val,
}
fn get_number(_:Value)->i32
{
5
}
fn find_number(val:Value)-> &'static str
{
match get_number(val)
{
7 => "seven",
8=> "eight",
_=> unreachable!()
}
}
fn main()
{
println!("{}", find_number(Value::Val));
}
執行上面示例代碼,得到以下結果 -
在上面的示例中,get_number()
函數返回的值爲5
,它與每個模式匹配,但不與任何模式匹配。 因此,unreachable!
宏調用panic!
宏 。