例外

例外(「exceptional event」の略)とは、プログラムの実行中に発生するエラーや予期しないイベントのことです。例外が発生すると、プログラムの処理の流れが中断されます。プログラムが例外を処理できれば、実行を続けられる場合があります。例外が処理されないと、プログラムは強制的に終了することがあります。

複数のプログラミング言語が例外をサポートしていますが、その使い方は言語によって異なります。たとえば、例外はJava言語の重要な要素であり、プログラムの処理の流れを制御するためによく使われます。JavaにはException クラスがあり、TimeoutExceptionUserExceptionIOExceptionなど、数十のサブクラスがあります。IOExceptionのようなサブクラスには、FileNotFoundExceptionCharacterCodingExceptionのような、さらに具体的な例外が含まれています。これらは、ファイルが見つからない場合や、文字列文字エンコーディングが認識されない場合に「スロー」されます。

ほかの言語では、メモリの割り当てに失敗した場合やシステムレベルのエラーなど、基本的な実行時エラーを捕捉するためだけに例外を使います。たとえば、C++プログラムでは、メモリを割り当てられないときにbad_alloc例外を、オペレーティングシステムでエラーが発生したときにsystem_error例外をスローすることがあります。

例外処理

適切に作られたコンピュータープログラムは、例外を確認し、適切に処理します。これは、開発者が発生する可能性のある例外を確認し、それらを処理するためのコードを書く必要があるということです。プログラムが例外を適切に処理すれば、予期しないエラーを検出して管理し、プログラムがクラッシュするのを防げます。

例外は発生したときに「スロー」され、プログラム内の別のコードによって「捕捉」されます。例外はthrow文を使って明示的にスローすることも、try節の中で暗黙的にスローすることもできます。以下は、Javaにおける「try / catch」構文の例です。次のコードは0による割り算を試みますが、ArithmeticException例外をスローし、結果として0を返します。

 1. int a = 11;
 2. int b = 0;
 3. int result = 0;
 4. try {
 5.   int c = a / b;
 6.   result = c;
 7. } catch(ArithmeticException ex) {
 8.   result = 0;
 9. }
10. return result;

5行目(11を0で割ったとき)で例外がスローされるため、try文の残りの部分(6行目)は実行されません。代わりに、7行目で例外が捕捉され、結果として0が返されます。

更新日 May 6, 2017 著者: Per C.

quiz知識をテストする

NTFS superseded which file system?

A
APFS
0%
B
FAT32
0%
C
HFS
0%
D
XFS
0%
Correct! Incorrect!     View the NTFS definition.
More Quizzes →

Tech Terms コンピューター辞書

このページの例外の定義は、TechTerms.comの著者が執筆したオリジナルの定義です。このページを参照または引用する場合は、定義の直下にある緑色の引用バーをご利用ください。

私たちの目標は、コンピューター用語をわかりやすく説明することです。すべての定義において正確さとわかりやすさを追求しています。フィードバックや新しい技術用語の提案がある場合は、お問い合わせください

Tech Terms ニュースレター

毎日または毎週のニュースレターで技術知識を高めましょう!今すぐ購読して、新しい用語やクイズをメールでお受け取りください。

無料のTechTermsニュースレターに登録する

メールの受信頻度を選択してください

各メールのリンクから、いつでも登録解除または頻度変更ができます。 ご質問はこちらからお問い合わせください。

注意:ニュースレターは英語で配信されます。