Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

エラー処理

エラーはソフトウェアにおいて避けられないものなので、Rust には 何か問題が起きた状況を扱うためのさまざまな機能があります。多くの場合、 Rust はコードをコンパイルできるようになる前に、エラーが起こる可能性を 認識し、何らかの対処を行うことを要求します。この要件により、コードを 本番環境にデプロイする前にエラーを発見して適切に処理できるようになるため、 プログラムの堅牢性が高まります。

Rust では、エラーを大きく 2 つのカテゴリに分類します。回復可能なエラーと、 回復不可能なエラーです。たとえば、ファイルが見つからない といった 回復可能なエラー の場合、たいていはその問題をユーザーに報告して、 操作を再試行したいだけでしょう。回復不可能なエラー は、配列の末尾を 超えた位置にアクセスしようとするような、常にバグの兆候であるため、 プログラムをただちに停止させたいと考えます。

ほとんどの言語では、この 2 種類のエラーを区別せず、例外のような仕組みを 使って両方を同じ方法で扱います。Rust には例外がありません。その代わりに、 回復可能なエラーには型 Result<T, E> があり、プログラムが回復不可能な エラーに遭遇したときに実行を停止する panic! マクロがあります。この章では、 まず panic! の呼び出しについて取り上げ、その後で Result<T, E> の値を 返す方法について説明します。さらに、エラーからの回復を試みるべきか、 それとも実行を停止すべきかを判断する際の考慮事項についても見ていきます。