プログラムには常にさまざまな問題があります。プログラムの実行中に通常の操作を有効にするために、Javaが提供する例外処理メカニズムを使用して、可能な例外をキャッチし、例外を処理し、プログラムを正常に実行できるようにします。これはJava例外処理です。
1。キャッチ可能な例外
Javaに巻き込まれる可能性のある例外は、制御可能なランタイムの例外に分割されます。
1。制御可能な例外
Javaでは、これらの予測可能なエラーをプログラムの編集中に処理でき、特定のエラー情報を指定できます。これらのエラーは、制御可能な例外と呼ばれます。一般的に使用される制御可能な例外は次のとおりです。
例外説明ioException一部のI/O例外が発生すると、この例外がスローされます。 Sqlexceptionは、データベースアクセスエラーまたはその他のエラーに関する情報を提供します。 classNotFoundException。例外は見つかりません。 nosuchfieldexception。クラスに指定された名前のフィールドが含まれていないときに生成される信号。 nosuchmethodexception。例外がスローされます。
2。ランタイムの例外
Javaのコンパイラが検出できないエラーは、ランタイム例外と呼ばれます。一般的なランタイムの例外は次のとおりです。
例外説明indexoutOutOUTOUTOFOUNDEXCEPTIONコレクションまたはアレイのインデックス値が範囲外であるときに例外がスローされることを示しますnullpointerexceptionは、アプリケーションが必要な場合のnullを使用しようとする場合、例外をスローします。インスタンスではないサブクラスに反対します
2。例外を処理します
Javaで例外が発生した場合、Try ... Catch、Try ... Catch ...ついにTryまたはTry ...ついに処理することを使用できます。
1。Try.... CATCHを使用して例外を処理します
試してみると、正常に実行されるステートメントがあり、キャッチ後には例外を処理するステートメントがあります。キャッチのブラケットは、プログラムが処理する必要がある例外タイプです。構文形式は次のとおりです。
{正常に実行するステートメント} catch(例外e){例外を処理するステートメント}を試してください}次のように、算術例外の例を次に示します。
public class exceptionTest {public static void main(string [] args){int result = 1/0; try {System.out.println(result); } catch(Exception e){System.out.println( "スロー例外:" + e.getMessage()); }}}ここで、1/0は、除数が0になることができないため、例外アルゴリズムです。操作結果は次のとおりです。
例外があるため、Try後のステートメントは実行されないため、キャッチ後のステートメントは実行されます。その中で、「e.getMessage()」は、詳細なメッセージ文字列を取得するために使用される例外情報を取得する方法です。さらに、PrintStackTrace()メソッドもあります。これは、スタックトレースを標準のエラーストリームに出力するために使用されます。 toString()メソッドは、短い説明を取得するために使用されます。
2。試してみてください。キャッチ。最後に例外を処理します
ここで、Try and Catchの後のステートメントは以前のステートメントと同じであり、例外が発生するかどうかに関係なく、最終的に実行する必要があります。したがって、最終的なステートメントブロックは通常、ゴミコレクションを実行するために使用されます。構文形式は次のとおりです。
{正常に実行するステートメント} catch(例外e){例外を処理するステートメント}最後に{間違いなく処理されるステートメント}3。試してみてください。最後に例外を処理します
プログラムで例外が発生すると、最終的なステートメントブロックでそれに応じて処理できます。さらに、プログラムに例外がない場合、Tryと最終的に最終的にステートメントの間にステートメントを実行した後、最終的なステートメントブロックのコードが実行されます。構文形式は次のとおりです。
{実行する必要があるステートメント}}最後に{間違いなく処理されるステートメント}3。例外を投げます
上記の試行に加えて、プログラムで発生する例外...ステートメント処理をキャッチすると、スロー宣言またはスローステートメントを使用して例外をスローすることもできます。
1.宣言をスローするには、例外をスローします
スローはメソッド宣言に使用され、スロー宣言を使用してメソッドを宣言するときに例外をスローし、メソッドを呼び出す際の例外を処理します。
複数の例外を宣言する必要がある場合、各例外はコンマで分離する必要があり、構文形式は次のとおりです。
データ型メソッド名(フォーマルパラメーターリスト)スロー例外クラス1、例外クラス2、...、例外クラスn {メソッドボディ;}たとえば、スローを使用して例外をスローします。
public void showinfo()スロー例外{// fileinputStream in = new fileInputStream( "c://record.txt"); // ioオブジェクトを作成}2。スローステートメントを使用して例外をスローします
プログラムを単独でスローする必要がある場合は、スローステートメントを使用してそれを達成できます。構文形式は次のとおりです。新しい例外をスロー( "例外");
スローステートメントを使用してスローされるのは、通常はIFステートメントで使用される例外クラスのインスタンスです。のように:
if(x <0){新しい例外をスロー( "プログラムの例外、xは0未満にすることはできません。");}