⊗pyPmExcInr 74 of 129 menu

Pythonにおける例外処理入門

このセクションでは、Pythonにおける 例外処理について検討します。 まずは、例外処理がどのようなものか 理解する必要があります。

プログラムを書く際、開発者は暗黙のうちに、 使用するソフトウェア技術的なメカニズムが すべて正常に動作することを想定しています。

しかし、常にそうとは限りません。 ネットワーク経由でデータを送信する際、 接続が切断され、データが不正な状態で 届いたり、全く届かなかったりすることがあります。 ファイルを書き込む際、ハードディスクに 割り当てられた領域が不足しており、 ファイルが書き込めないことがあります。 ファイルを読み込む際、そのファイルが 存在せず、読み込む元がないことがあります。 プリンターでデータを印刷する際、 プリンターとコンピューターを接続する ケーブルが断線することがあります。

上記の状況はすべて共通の本質を持っています: 何らかの障害が発生し、計画された操作の 完了が不可能または無意味になります。

障害ではないエラーが発生する状況もあります。 例えば、ユーザーにemailを尋ね、 ユーザーが不正な形式のemailを入力した場合です。 もちろん、emailが正しくないため、 プログラムはemailの処理を続行できません。 しかし、これは例外状況ではありません。 プログラム自体が状況を修正できます: エラーメッセージを表示し、 ユーザーは入力をやり直すことができます。

実際、障害と非障害の違いは非常に曖昧です。 あるプログラムが例外状況と解釈するイベントを、 別のプログラムは対処可能なエラーとして 解釈するかもしれません。

ここでの基準は以下の通りです: 問題が発生した際、プログラムが本来の目的を 果たすために実行を継続できる場合は 例外状況ではなく、できない場合は例外です。

例えば、ユーザーのemailを尋ねるプログラムがあるとします。 ユーザーが不正な形式のemailを入力した場合、 これは障害ではありません。 これは予想される問題であり、 プログラムはユーザーが正しい形式で入力するまで 何度でもemailを尋ね続けます。

次に、emailを尋ねるこのプログラムが、 正しいemailをインターネット経由で送信する 必要があるとします。 その際、インターネットが動作していないことが 判明します。 これは問題です: インターネットが動作していなければ、 プログラムはデータをインターネット経由で 送信できません。 それでもプログラムは実行を継続できます: 問題についての情報を表示したり、 しばらくして送信を再試行したりすることができます。 しかし、これらの行動は、 プログラムの主な目的であるemailの送信を 行えないため、 プログラムが意図されたものとは 完全には一致しません。

したがって、どの動作が正常で、 どの動作が例外と見なされるかの解釈は、 プログラマーに課せられたタスクに 大きく依存することがよくあります。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否