⊗jsSpExcInr 137 of 294 menu

JavaScriptにおける例外処理入門

ここではJavaScriptにおける例外処理について考えていきます。 まずは、プログラミング言語全般における例外処理の例を用いた導入を行い、 その後、JavaScriptにおける扱いについて詳しく見ていきましょう。

私たちがプログラムを書くとき、使用しているプログラムや技術的メカニズムが すべて正しく動作することを暗黙のうちに想定しています。

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

これらすべての状況には共通点があります。何らかの障害が発生し、 計画された操作を完了することが不可能または無意味になることです。

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

実際、障害と非障害の区別は非常に曖昧です。あるプログラムが例外状況と 解釈する事象を、別のプログラムは自力で対処可能な単なるエラーと 解釈する場合があります。

ここでの基準は次の通りです。問題が発生したとき、あなたのプログラムが 本来の目的を果たすための動作を継続できるなら、それは例外ではなく、 継続できないなら、それは例外です。

例えば、ユーザーのメールアドレスを尋ねるプログラムがあるとします。 ユーザーが不正な形式でメールアドレスを入力しても、それは障害ではありません。 これは想定される問題であり、プログラムはユーザーが正しい形式で入力するまで 何度でも尋ねることができます。

このメールアドレスを尋ねるプログラムが、正しいメールアドレスを インターネット経由で送信する必要があるとしましょう。その際、 インターネットが接続されていないことが判明しました。これは問題です。 インターネットが接続されていない場合、プログラムはデータを インターネット経由で送信することができません。 それでもプログラムは実行を継続できます。問題の情報を表示したり、 一定時間後に送信を再試行したりすることができます。しかし、 これらの動作は、プログラムが本来意図されたものとは少し異なります。 主要な動作であるメールの送信をプログラムが行えないからです。

ある状況が例外かどうかは、多くの場合プログラミング言語に依存します。 多くの言語では、ゼロ除算が発生すると例外とみなされます(ゼロで割ることは できないため)。しかし、JavaScriptでは例外とはみなされません (JavaScriptではゼロで割ることができます)。

日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否