Listen

Description

第9章へようこそ。

今日のテーマは「エラー型の設計」です。

第3章でResult型を学びました。

関数が失敗しうるとき、戻り値をResult型にする。Okに成功時のあたいが入り、Errにエラー情報が入る。

?演算子で、エラーを呼び出し元に伝播できる。

しかし、第3章では触れなかったことがあります。

Errの中に入れるエラー型を、どう設計するのか。

ファイルの読み込みは入出力エラーを返す。文字列のパースはパースエラーを返す。

1つの関数の中で、異なる種類のエラーが発生しうるとき、戻り値のエラー型は何にするのか。

エラーを受け取った側は、どうやって失敗の種類を区別するのか。

第8章でトレイトを学んだことで、この問題に正面から向き合えます。

Rustのエラー処理は、トレイトの仕組みの上に構築されている。