Java例外は、コードセグメントで発生する例外(つまり、エラー)の状況を説明するオブジェクトです。例外が発生すると、例外を表すオブジェクトが作成され、エラーを引き起こす方法でスローされます。この方法は、例外自体を処理するか、渡すことを選択できます。どちらの場合も、例外はキャッチされ、処理されます。例外は、Javaランタイムシステム、または手動コードによって生成される場合があります。 Javaによって投げられる例外は、言語仕様に違反するか、Java実行環境の制限を超える基本的なエラーに関連しています。手動エンコードによって生成される例外は、基本的にメソッドコラーのエラー条件を報告するために使用されます。
Java例外処理は、5つのキーワードによって制御されます:試行、キャッチ、スロー、スロー、最後に。これらがどのように機能するかがあります。プログラムは、必要な例外監視がトライブロックに含まれていることを宣言します。 Tryブロックで例外が発生した場合、スローされます。あなたのコードは、この例外をキャッチ(CACTで)キャッチし、何らかの合理的な方法で処理できます。システムによって生成される例外は、Javaランタイムシステムによって自動的にスローされます。キーワードスローを使用して、手動で例外をスローします。スローされた方法の例外は、スロー条項で定義する必要があります。メソッドが戻る前に絶対に実行されるコードは、最終的なブロックに配置されます。
以下は、例外ハンドリングブロックの通常の形式です。
{//エラーを監視するコードのブロック} catch(exceptionType1 exob){//例外型の例外ハンドラー} catch(exceptionType2 exob){// excectionType2のイオンハンドラーを除く} // ...最後に{//ブロックのブロックのブロックトライブロックが終了する前に実行されるコード}}
ここで、例外型は例外が発生したタイプです。
すべての例外タイプは、ビルトインクラスのスロー可能なサブクラスです。したがって、スロー可能は、例外クラスの階層の最上位レベルにあります。スロー可能な直後に、例外を2つの異なるブランチに分割する2つのサブクラスがあります。ブランチは例外です。
このクラスは、ユーザープログラムでキャッチされる可能性のある例外に使用されます。また、独自のユーザー例外タイプのサブクラスを作成するために使用できるクラスでもあります。例外分岐には、重要なサブクラスRuntimeExceptionがあります。このタイプの例外は、あなたが書くプログラムに対して自動的に定義され、ゼロと違法な配列のインデックスで割るなどのエラーが含まれます。
別のタイプのブランチは、エラーがあるトップレベルであり、通常の環境でプログラムにキャッチされることを意図していない例外を定義します。型エラーの例外は、Javaランタイムシステムで使用されて、ランタイムシステム自体に関連するエラーを表示します。スタックオーバーフローは、このエラーの例です。この章では、エラータイプの例外処理については説明しません。これは、プログラムが制御できるものではない壊滅的で致命的なエラーであることが多いためです。