ホームページ >Java >&#&チュートリアル >例外メソッドを処理する Java プログラム

例外メソッドを処理する Java プログラム

王林
王林転載
2023-09-12 11:49:02775ブラウズ

例外メソッドを処理する Java プログラム

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 の try-catch ブロックは、例外を処理するために使用されます。 try ブロックには、例外をスローする可能性のあるコードが含まれています。 catch ブロックは例外をキャッチして処理します。試行の後に一連の catch ブロックを続けることができます。

リーリー

次に、Java でメソッド例外を処理するさまざまな方法について詳しく説明します。 方法 1: 単一の try-catch ブロックを使用する

このアプローチでは、単一の try ブロックと単一の catch ブロックを使用して、発生した例外を処理します。

###アルゴリズム###

配列をランダムな値で初期化します。

    インデックスが配列の長さより大きくなるように、配列内の要素にアクセスしてみます。例外がスローされるため、このコードを try ブロックに配置します。
  • 例外が発生したら、catch() メソッドを使用して ArrayIndexOutOfBounds 例外をキャプチャし、getMessage() メソッドを使用してメッセージを出力し、printStackTrace() メソッドを使用して一連のメソッド呼び出しを出力します。
  • ###例###
  • この例では、try ブロックと catch ブロックにコードを記述します。 try ブロックでは、5 つの値で配列を初期化し、配列の 8 番目の要素にアクセスします。これにより、通常、例外
  • "ArrayIndexOutOfBoundsException"

    がスローされます。 catch ブロックはこの例外をキャプチャし、

    getMessage()
  • メソッドを使用してエラー メッセージを出力します。
printStackTrace()

メソッドは、例外発生時のメソッド呼び出しシーケンスを出力するために使用されます。

リーリー ###出力### リーリー

方法 2: 単一の try ブロックと複数の catch ブロックを使用する このアプローチでは、単一の try ブロックと複数の catch ブロックを使用して、発生する例外を処理します。 ###アルゴリズム### try ブロックを宣言し、2 つの整数変数、つまり分子と分母を初期化します。分母変数は 0 に初期化されます。

ここで、分母の値が 0 に等しい場合、ArithmeticException がスローされます。

さまざまな例外を処理するには、複数の catch ブロックを作成します。

  • 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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。