Java異常処理学習心得
プログラムには常に様々な問題が存在します。プログラム実行中に正常に動作するために、Javaが提供する異常処理メカニズムを使って、起こり得る異常を捕捉し、異常を処理し、プログラムを正常に動作させます。これはJavaの異常処理です。
一、捕獲可能な異常
Javaで捕獲できる異常は、制御式と運転時の異常に分類されます。
1. 制御可能異常
Javaでは、予知可能なエラーをプログラムコンパイル時にプログラムに存在する可能性のあるエラーを処理し、具体的なエラー情報を与えることができます。これらのエラーを制御可能な異常と呼びます。よく使われる制御式の異常は以下の通りです。
異常説明IOExceptionは、何らかのI/O異常が発生した場合、この異常SQLExceptionがデータベースアクセスエラーや他のエラー情報に関する異常Class NortFoundException類に異常NoSuchFieldException類が指定された名前のフィールドを含まない場合に発生するメッセージ番号NothMethodExceptionを提供します。
2. 運転時異常
Javaでコンパイラで検出できないエラーを運転時異常と呼びます。通常の運転時の異常は以下の通りです。
異常 説明 IndexOutOf Bounds Exception あるセットまたは配列のインデックス値が範囲外であることを示す場合、この例外を投げます。 Null PointerException アプリケーションがオブジェクトが必要なところでnullを使用しようとした場合、その例外をスローします。 ArthmeticException 異常な演算条件が発生した場合、この異常をスローします。 IllgalAgmentException 異常な表示を投げかけて、方法に非合法または不正なパラメータを伝達しました。 Class CastException オブジェクトを強制的にインスタンスではないサブクラスに変換しようとすると、この例外をスローします。
二、異常処理
Javaでプログラムに異常が発生した場合は、try・・・catch、try・・・catch・・・finallyまたはtry・・finallyを用いて処理することができます。
1. try・・・catchを使って異常を処理する
tryの後は正常に実行される文ですが、catchの後は異常処理の文言です。catchの括弧はプログラムによって処理される異常なタイプです。文法の書式は以下の通りです。
異常があるので、try後の文は実行しないで、catch後の文を実行します。「e.getMessage()」は、詳細なメッセージ文字列を取得するための異常情報を取得する方法である。また、printStockTrace()方法があり、そのスタックを標準的なエラーフローに出力するために使用されます。String()方法を用いて短い記述を得る。
2. try・・・catchを使う・・・finally処理異常
ここでtry、catch後の語句は前と同じで、finally後の語句は異常が発生するかどうかに関わらず実行されるので、finally文ブロックは通常ゴミ回収を実行するために使用されます。文法の書式は以下の通りです。
プログラムに異常が発生した場合、finally文ブロックで対応する処理ができます。また、プログラムに異常が発生していない場合、tryとfinallyの語句を実行した後、finally文ブロックのコードも実行されます。文法の書式は以下の通りです。
プログラムで発生した異常については、上のtry・・・catch文以外に、throws文またはthrows文を使って例外を出すことができます。
1. throws声明を使って異常を投げます。
throwsは、方法声明の中で、throws声明を使用して、異常を宣言し、呼び出し方法で異常を処理するために使用される。
複数の異常を宣言する場合、各異常間はカンマで区切られます。文法形式は以下の通りです。
プログラムに異常がある場合は、throw文を使って実行します。文法の書式は以下の通りです。 throw new Exception(「異常に対する説明」);
throw文を使って投げたのは異常類の実例で、通常はif文と一緒に使います。例えば:
一、捕獲可能な異常
Javaで捕獲できる異常は、制御式と運転時の異常に分類されます。
1. 制御可能異常
Javaでは、予知可能なエラーをプログラムコンパイル時にプログラムに存在する可能性のあるエラーを処理し、具体的なエラー情報を与えることができます。これらのエラーを制御可能な異常と呼びます。よく使われる制御式の異常は以下の通りです。
異常説明IOExceptionは、何らかのI/O異常が発生した場合、この異常SQLExceptionがデータベースアクセスエラーや他のエラー情報に関する異常Class NortFoundException類に異常NoSuchFieldException類が指定された名前のフィールドを含まない場合に発生するメッセージ番号NothMethodExceptionを提供します。
2. 運転時異常
Javaでコンパイラで検出できないエラーを運転時異常と呼びます。通常の運転時の異常は以下の通りです。
異常 説明 IndexOutOf Bounds Exception あるセットまたは配列のインデックス値が範囲外であることを示す場合、この例外を投げます。 Null PointerException アプリケーションがオブジェクトが必要なところでnullを使用しようとした場合、その例外をスローします。 ArthmeticException 異常な演算条件が発生した場合、この異常をスローします。 IllgalAgmentException 異常な表示を投げかけて、方法に非合法または不正なパラメータを伝達しました。 Class CastException オブジェクトを強制的にインスタンスではないサブクラスに変換しようとすると、この例外をスローします。
二、異常処理
Javaでプログラムに異常が発生した場合は、try・・・catch、try・・・catch・・・finallyまたはtry・・finallyを用いて処理することができます。
1. try・・・catchを使って異常を処理する
tryの後は正常に実行される文ですが、catchの後は異常処理の文言です。catchの括弧はプログラムによって処理される異常なタイプです。文法の書式は以下の通りです。
try {
} catch(Exception 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後の文は実行しないで、catch後の文を実行します。「e.getMessage()」は、詳細なメッセージ文字列を取得するための異常情報を取得する方法である。また、printStockTrace()方法があり、そのスタックを標準的なエラーフローに出力するために使用されます。String()方法を用いて短い記述を得る。
2. try・・・catchを使う・・・finally処理異常
ここでtry、catch後の語句は前と同じで、finally後の語句は異常が発生するかどうかに関わらず実行されるので、finally文ブロックは通常ゴミ回収を実行するために使用されます。文法の書式は以下の通りです。
try {
} catch(Exception e) {
} finally {
}
3. try・・・finallyを使用して異常を処理します。プログラムに異常が発生した場合、finally文ブロックで対応する処理ができます。また、プログラムに異常が発生していない場合、tryとfinallyの語句を実行した後、finally文ブロックのコードも実行されます。文法の書式は以下の通りです。
try {
} finally {
}
三、投げ異常プログラムで発生した異常については、上のtry・・・catch文以外に、throws文またはthrows文を使って例外を出すことができます。
1. throws声明を使って異常を投げます。
throwsは、方法声明の中で、throws声明を使用して、異常を宣言し、呼び出し方法で異常を処理するために使用される。
複数の異常を宣言する場合、各異常間はカンマで区切られます。文法形式は以下の通りです。
( ) throws 1, 2, ……, n {
;
}
例えば、throwsでExceptionの異常を投げます。
public void showInfo() throws Exception { // Exception
FileInputStream in = new FileInputStream("C://Record.txt"); // IO
}
2. throw文を使って、異常を投げます。プログラムに異常がある場合は、throw文を使って実行します。文法の書式は以下の通りです。 throw new Exception(「異常に対する説明」);
throw文を使って投げたのは異常類の実例で、通常はif文と一緒に使います。例えば:
if(x < 0) {
throw new Exception(" ,x 0。");
}