Javaのよくあるエラーと異常分析


Java言語のすべてのエラーおよび例外はThrowableクラスから継承されます.JVMまたはJava throw文で投げ出すのは、オブジェクトがこのクラスまたはそのサブクラスのインスタンスである場合のみです.興味深いことに他のableで終わるのはインタフェースで、Throwableは確かにクラス(sigh、今日よく研究して、さもなくばすべて知りません)......
Throwableには2つのサブクラスがあります.ErrorとExceptionです.
(1).Error:
    JVMによって検出された予期しないエラーを表します.これはJVM階層に属する重大なエラーであり、JVMが実行できないため、リカバリできない操作であり、エラー情報しか表示できません.
(2).Exception:
    例外、リカバリ可能スナップ可能例外
Javaで主に提供される2つの例外:Runtime ExceptionとChecked Exception
(1).Checked Exception:
    つまり、私たちがよく遭遇するIO異常と、SQLの異常はこのような異常です.この異常に対してJavaコンパイラはcatchを強制しなければならないと要求しています.
(2).Runtime Exception:
    すなわち、実行時異常は、Java仮想マシンの正常な実行中に投げ出される可能性のある異常のスーパークラスです.RuntimeExceptionのサブクラスは、throwsの句で宣言する必要がなく、実行時の異常を処理することはできません.このような異常が発生した場合、JVMによって管理され、処理コードに遭遇するまで異常を上位に放出します.処理が速くなければ最上層まで、マルチスレッドであればThread.run()によって投げ出され、そのスレッドは終了する.単一スレッドであればmain()に投げ出され,プログラムは終了する.すなわち、実行時異常を処理しない場合、実行時異常が発生した場合、スレッドが終了するか、プログラムが終了するかのどちらかです.
    終了したくない場合は、このスレッドを終了させないように、すべてのランタイム例外をキャプチャする必要があります.異常データが発生した場合、次の正しいデータの処理に異常データの影響を及ぼすのではなく、異常を破棄しながらログを記録するのが正しい方法です.
一般的なExceptionおよびError
(1)Exception
JAva.langパッケージには次のものがあります.
1.java.lang.ArithmeticException:
異常の演算条件が発生した場合、この異常を放出します.たとえば、整数をゼロで割った場合、このようなインスタンスが放出されます.
2.java.lang.ArrayIndexOutOfBoundsException
配列に不正なインデックスでアクセスしたときに放出される例外.インデックスが負またはそれ以上の場合、インデックスは不正なインデックスです.
3.java.lang.ArrayStoreException
エラータイプのオブジェクトをオブジェクト配列に格納しようとしたときに放出された例外.例えば、次のコードは、ArrayStoreExceptionを生成することができる.
Object x[] = new String[3];
x[0] = new Integer(0);

4.java.lang.ClassCastException
この例外は、オブジェクトを強制的にインスタンスではないサブクラスに変換しようとすると放出されます.たとえば、次のコードはClassCastExceptionを生成します.
Object x = new Integer(0);
System.out.println((String)x);

5.java.lang.ClassNotFoundException
アプリケーションが文字列名を使用してクラスをロードしようとすると、この例外が放出されます.
  • ClassクラスのforNameメソッド.
  • ClassLoaderクラスのfindSystemClassメソッド.
  • ClassLoaderクラスのloadClassメソッド.

  • ただし、指定した名前のクラスの定義は見つかりません.