ホームページ  >  記事  >  Java  >  Java 例外 Exception インスタンスを分析する方法と手順

Java 例外 Exception インスタンスを分析する方法と手順

WBOY
WBOY転載
2023-04-20 15:31:261427ブラウズ

1. 例外の最大の親クラスである Throwable

Java 例外 Exception インスタンスを分析する方法と手順

Throwable は 2 つのタイプに分類できます:

Error

Exception :

  • #実行時例外 (チェックされていない例外)

  • #非実行時例外 (チェックされた例外)
  • #エラー: エラーは、プログラムが処理できないエラーです。OutOfMemoryError、ThreadDeath など、jvm によってスローされます。これらの例外が発生すると、jvm はプログラムの実行を終了することを選択します
Exception: それ自体で処理できるプログラム例外です。

実行時例外: NullPointerException (null ポインター)、IndexOutOfBoundException (配列アウトなど) など、すべての RuntimeException クラスおよびサブクラスです。これらの例外はキャプチャして処理できます。または処理できません。
  • 非実行時例外: (チェックされた例外) RuntimeException を除き、型は例外に属します。クラス。プログラム構文の観点から、これらの例外は処理する必要があります。処理されないと、プログラムは IOException、SQIException
  • 2、try- などのコンパイルを通過できなくなります。 catch-finally 注意すべき 3 つのステートメント

try、catch、finally は単独では使用できません。これら 3 つは組み合わせて使用​​できます。組み合わせ方法は、try…catch、try&hellip です。 ;catch…finally、try…finally。catch は 1 つ以上存在でき、finally ステートメントは最大でも 1 つだけです。
  • 3 つのステートメント ブロック内の変数のスコープはコード ブロックです。相互に独立してアクセスすることはできません。3 つのブロックすべてにアクセスできるようにしたい場合は、これらのブロックの外側に変数を定義してください。
  • catch ブロックが複数ある場合は、次の場所にあります。ほとんどの 1 つの例外クラスが一致して catch ブロック コードが実行され、他の catch ブロックは実行されず、一致する順序は上から下になります。一致する例外クラスは最大 1 つだけです。つまり、一致する例外クラスは 1 つだけです。
  • catch キャプチャされた例外クラスを繰り返すことはできません。最初にサブクラス例外をキャプチャし、次に親クラスをキャプチャする必要があります。例外
  • try ステートメントに問題があるかどうかに関係なく、finally ステートメントは実行する必要があります。finally は、プログラムの状態を一元的に管理するために、プログラムに統一された出口を提供します。通常の状況では、リソースは作業の終了とクリア
  • #

    package com.exception;
    public class Test {
        public static void main(String[] args) {
            int[] a=new int[5];
            try {
                for (int i = 0; i <10 ; i++) {
                    a[i]=i;
                }
                //空指针
            }catch (ArrayIndexOutOfBoundsException e){
                //弹出出错的地方
                System.out.println("1");
                e.printStackTrace();
                //访问异常,数组越界
            }catch (NullPointerException e){
                System.out.println("2");
                e.printStackTrace();
                //无论有错与否,finally最终执行
            } finally {
                System.out.println("都能执行");
            }
            System.out.println("---------------");
        }
    }

    3 で処理されます。final-finally-finalize

final の関数: 定数を定義するためのキーワード
  • finally: 例外で常に実行できるコード ブロック
  • finalize(): ガベージ コレクション、このメソッドはシステム コールです
  • 4. Throws キーワード

メソッドを定義するときに、throws キーワードを使用できます。ステートメントを使用して、メソッドが例外を処理しないことを示します。代わりに、例外の処理はメソッドの呼び出し元に任されます。
  • メソッドを定義するときに、 throws キーワードを
  • 主要パーティ (main) も throws キーワードを使用する場合、それは、プログラマ自身の選択で使用されます。これは、メイン メソッドが例外を処理せず、最終的に jvm に任せることを意味します。jvm はプログラムを終了することで例外を処理します
  • throws はサブクラス例外をスローします。このメソッドは例外を処理する必要はありません
  • 注:
throw キーワード: 例外をカスタマイズできます。つまり、例外をスローします。スローされた場合、これはオブジェクトです。例外クラスの

5. throws と throw

throws の違い:

メソッド宣言の後に使用され、その後に例外クラス名が続きます。
  • #コンマで区切って複数の例外クラスを続けることができます

  • 例外がスローされ、このメソッドの呼び出し元がそれを処理することを示します

  • #throws は例外の可能性を示しますが、必ずしも例外が発生するとは限りません

  • throw:

メソッド本体で使用され、その後に例外オブジェクトが続きます。

  • 例外オブジェクトは 1 つだけスローできます。

  • # 例外をスローすることを意味します。メソッド本体にはそれを処理するためのステートメントがあります。
  • throw 例外のスローは確実に発生しますが、その可能性はありません
  • コード表現:
  • rree

以上がJava 例外 Exception インスタンスを分析する方法と手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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