Exception は、プログラムの通常の実行フローを中断する異常なイベントです。例外が発生すると、例外オブジェクトと呼ばれるオブジェクトが生成されます。このオブジェクトには、名前、説明、プログラムのステータスなどの例外の詳細が含まれます。このセクションでは、Java に存在するさまざまな例外メソッドを処理する Java プログラムを作成します。
例外には 3 種類あります −
チェック例外 -チェック例外はコンパイル時の例外であり、プログラムのコンパイル中にチェックされます。これらの例外は無視できないため、プログラマが処理する必要があります。例: IOException、SQLException、ClassNotFounException。
未チェック例外 - 未チェック例外は実行時例外です。つまり、コンパイル中に無視され、プログラムの実行中にチェックされます。例: NullPointerException (null ポインター例外)、ArithmeticException (算術例外)、ArrayIndexOutOfBoundsException (配列範囲外例外)。
エラー -エラーは、通常、Java仮想マシンまたはシステムリソースの問題が原因で発生する回復不可能な例外です。例外とは異なり、エラーは、プログラムでは修正できない重大な問題があることを示すため、プログラマによって捕捉または処理されるべきではありません。例: OutOfMemoryError、StackOverflowError。
###例外処理### 例外処理は、実行フローが中断されないように、プログラムの実行中に発生した例外を処理するプロセスです。これは、Java の try-catch ブロックを使用して行われます。 try ブロックには例外をスローする可能性のあるコードが含まれており、catch ブロックには例外を処理するコードが含まれています。 組み込みの例外を使用したり、カスタムまたはユーザー定義の例外を作成したりできます。カスタム例外は、
Exceptionクラスまたは RuntimeException クラスを拡張します。 Java には、これらの例外を処理するためのメソッドが多数用意されています。これらのメソッドの一部は -
です。 getMessage()-このメソッドは、エラーメッセージを文字列として返すために使用されます。 JavaのThrowableクラスで定義されるメソッドです。 リーリー
getStackTrace()- このメソッドは、例外を引き起こした一連のメソッド呼び出しの配列を返します。 JavaのThrowableクラスで定義されているメソッドです。 リーリー
printStackTrace()- このメソッドは、例外を引き起こした一連のメソッド呼び出しの配列を出力します。 JavaのThrowableクラスで定義されているメソッドです。 リーリー
Throw-「throw」は、明示的に例外をスローするために使用される Java のキーワードです。このキーワードが実行されると、通常のプログラム フローが停止され、例外がスローされ、最も近い catch ステートメントによってキャッチされます。 リーリー
getCause()-このメソッドは、この例外を発生させた他の例外の原因を返します。原因が不明な場合は「null」が返されます。 JavaのThrowableクラスで定義されるメソッドです。 リーリー ###文法###
try-catch ブロック次に、Java でメソッド例外を処理するさまざまな方法について詳しく説明します。 方法 1: 単一の try-catch ブロックを使用する
このアプローチでは、単一の try ブロックと単一の catch ブロックを使用して、発生した例外を処理します。
###アルゴリズム###配列をランダムな値で初期化します。
###例###
がスローされます。 catch ブロックはこの例外をキャプチャし、
getMessage()方法 2: 単一の try ブロックと複数の catch ブロックを使用する このアプローチでは、単一の try ブロックと複数の catch ブロックを使用して、発生する例外を処理します。 ###アルゴリズム### try ブロックを宣言し、2 つの整数変数、つまり分子と分母を初期化します。分母変数は 0 に初期化されます。
Java のさまざまな組み込みメソッドを使用して、例外メッセージと発生した例外を出力します。
在此示例中,我们使用了一个 try 块,后跟多个 catch 块。如果从 try 块中抛出 ArithmeticException,则执行处理 ArithmeticException 代码的 catch 块。如果 try 块抛出 NullPointerException,则执行该特定的 catch 块。如果 catch 块不处理 try 块引发的特定异常,则执行最后一个 catch 块代码,因为它正在处理通用异常情况。从示例中,当分母值初始化为零时,我们使用“throw”关键字抛出一个 ArthemeticException,并执行处理 ArthemeticException 的 catch 块。
import java.util.*; public class Main { public static void main(String[] args) { try { int numerator = 10, denominator = 0 ; if(denominator == 0) { throw new ArithmeticException(); } } catch (ArithmeticException e) { System.out.println("ArithmeticException caught."); System.out.println("Message: " + e.getMessage()); System.out.println("Stack Trace: "); e.printStackTrace(); System.out.println("Cause: " + e.getCause()); } catch (NullPointerException e) { System.out.println("NullPointerException caught."); System.out.println("Message: " + e.getMessage()); System.out.println("Stack Trace: "); e.printStackTrace(); System.out.println("Cause: " + e.getCause()); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException caught."); System.out.println("Message: " + e.getMessage()); System.out.println("Stack Trace: "); e.printStackTrace(); System.out.println("Cause: " + e.getCause()); }catch (Exception e) { System.out.println("NullPointerException caught."); System.out.println("Message: " + e.getMessage()); System.out.println("Stack Trace: "); e.printStackTrace(); System.out.println("Cause: " + e.getCause()); } } }
ArithmeticException caught. Message: null Stack Trace: java.lang.ArithmeticException at Main.main(Main.java:7) Cause: null
因此,在本文中,我们讨论了处理Java编程语言中异常方法的不同方法。
以上が例外メソッドを処理する Java プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。