エラー処理
関数実装側
メッセージを出して異常終了するなら panic! マクロを使う。
code:rs
panic!("Oops!")
正常か異常(エラー)かを返すならResult<T,E>型を使う。
異常(エラー)ではなく値が存在しない事を返す場合はOption<T>型を使う。
Result<T,E>型を受け取る場合
エラーの場合にプログラムが異常終了してよいなら関数の後に?を付ける。
エラーを翻訳せずにそのまま返す場合
code:rust
let r = f();
if r.is_err()
{
return r;
}
let Ok(val) = r;
スコープが1段下がってもいい場合
code:rs
match r
{
Ok(val) =>
Err(err) =>
}
Option<T>型を受け取る場合
Noneの場合にプログラムが異常終了してよいなら unwrap() する。