この記事では、Java の例外メカニズムを例とともに分析し、参考のために皆さんに共有します。 Java プログラムの例外処理能力を向上させるのに役立つと思います。具体的な分析は次のとおりです。
ご存知のとおり、Java の例外 (Exception) メカニズムは非常に重要であり、プログラムでは必ずエラーが発生します。これにより、プログラム内のエラーが捕捉され、プログラムの安定性と堅牢性が向上します。
Java の例外は、Checked Exception (非実行時例外) と UnChecked Exception (実行時例外) に分けられ、すべての例外クラスは Exception を直接または間接的に継承します。 Exception は Throwable クラスから直接継承します。Throwable クラスの直接のサブクラスには error クラスも含まれます。ただし、エラーが発生すると、プログラムはエラーを処理できません。そのため、ここでは Exception クラスに焦点を当てます。 。 RuntimeException クラスは Exception を継承し、ランタイム例外は直接的または間接的に RuntimeException クラスから継承されます。 Exception クラスから継承するその他の例外は、コンパイル中に検出できる実行時以外の例外です。実行時例外は実行時にのみ発生します。たとえば、ゼロによる算術除算はコンパイル中に通過できますが、実行時例外は実行時にスローされ、除数をゼロにすることはできません。
Javaの例外処理には2種類ある
1. 例外のキャッチ
構造は次のとおりです
try{//例外を生成する可能性のあるコードを実行します}catch(RuntimeException e){//キャッチした例外を処理します}catch(Exception e)//キャッチする複数の例外を定義できます{//キャプチャした例外を処理します}finally {//キャプチャ後に実行されるコードはオプションであり、存在する場合は、例外の有無に関係なく実行されます。
catch で例外をキャッチした場合、その後に catch ステートメントがあれば実行されませんが、finally ブロックがある場合は、finally ブロック内のステートメントは必ず実行されます。
2. 例外を宣言する
ThrowsException は、例外を生成するメソッドが呼び出されるメソッド宣言で宣言されます。このメソッドはこのタイプの例外を処理しませんが、メソッドの呼び出し元によって処理されます。
3. 人為的に例外をスローする
メソッド内で直接例外をスローする、例外をスローする。
実行時例外を処理しないことをお勧めします。
カスタム例外は、Exception クラスを継承するサブクラスを定義します。通常、try ブロックに return ステートメントがある場合、そのステートメントは定義されません。再度、finally ブロックを実行する必要がありますが、try ブロック内に System.exit(0) ステートメントがある場合、System.exit(0) が現在のブロックを終了するため、finally ブロックのステートメントは実行されません。 Java 仮想マシンを実行すると、仮想マシンが終了する前にプログラムが終了します。
クラス myException extends Exception{ public myException(String str) { super(str);
例外は、ファイル処理、入出力ストリーム アプリケーションなどで使用されます。
一般的な例外の種類は次のとおりです。
1. java.lang.NullPointerException: Null ポインタ例外。この例外の理由は、参照が null であるにもかかわらず、その参照のメソッドがプログラム内で呼び出されているためです。
2. java.lang.ClassNotFoundException: 指定されたクラスが見つかりません。クラスが定義されていない可能性があります。
3. java.lang.ArithmeticException: ゼロ除算などの算術例外。
4. FileNotFoundException: ファイル処理中に、指定されたファイルが見つかりません。
5. IOException: 入力および出力ストリーム例外
6. SQLException: SQL 例外。SQL ステートメントの実行時にエラーが発生しました。
さらに、将来のプログラミングでは多くの種類の例外が発生することになります。この記事で説明されている内容は、すべての Java プログラミングにとって一定の参考になると思います。