エラー処理

ソフトウェアにおいて、エラーは避けられない現実です。 そのため、Rustには何かがおかしくなる場面に対処するための機能がたくさんあります。多くの場面で、 コンパイラは、プログラマにエラーの可能性を知り、コードのコンパイルが通るまでに何かしら対応を行うことを要求してきます。 この要求により、エラーを発見し、コードを実用に供する前に適切に対処していることを確認することでプログラムを頑健なものにしてくれるのです!

Rustでは、エラーは大きく二つに分類されます: 回復可能回復不能なエラーです。 ファイルが見つからないなどの回復可能なエラーには、ほとんどの場合は単に問題をユーザに報告し、処理を再試行したいことでしょう。 回復不能なエラー、例えば配列の境界を超えた箇所にアクセスしようとすることなどは、常にバグの兆候であり、直ちにプログラムを停止したいことでしょう。

多くの言語では、この2種のエラーを区別することはなく、例外などの機構を使用して同様に扱います。 Rustには例外が存在しません。代わりに、回復可能なエラーにはResult<T, E>型があり、 プログラムが回復不能なエラーに遭遇した時には、実行を中止するpanic!マクロがあります。 この章では、まずpanic!の呼び出しを講義し、それからResult<T, E>を戻り値にする話をします。 加えて、エラーからの回復を試みるか、実行を中止するか決定する際に考慮すべき事項についても、探究しましょう。