Java では、すべての例外に共通の祖先 Throwable (throwable) があります。 Throwable は、例外伝播メカニズムを使用して Java アプリケーションを通じて伝播できるコード内の問題の共通性を指定します。
Throwable: Exception (例外) と Error (エラー) という 2 つの重要なサブクラスがあり、どちらも Java 例外処理の重要なサブクラスです。多数のサブカテゴリ。例外とエラーの違いは、例外はプログラム自体で処理できるのに対し、エラーは処理できないことです。(推奨学習:java コース)
エラー (エラー):はプログラムで処理できないエラーで、実行時に重大な問題があることを示しています。アプリケーション。ほとんどのエラーは、コード作成者が実行したアクションとは何の関係もなく、コードの実行中の JVM (Java 仮想マシン) の問題を表します。
たとえば、Java 仮想マシン実行エラー (Virtual MachineError) では、操作の実行を継続するために必要なメモリ リソースが JVM になくなったときに、OutOfMemoryError が発生します。
これらの例外が発生すると、Java 仮想マシン (JVM) は通常、スレッドを終了することを選択します。これらのエラーは、Java 仮想マシン実行エラー (Virtual MachineError)、クラス定義エラー (NoClassDefFoundError) など、仮想マシン自体で障害が発生したこと、または仮想マシンがアプリケーションを実行しようとしたときに障害が発生したことを示します。
これらのエラーは、アプリケーション プログラムの制御および処理能力の範囲外にあるためチェックできません。また、そのほとんどはプログラムの実行中に発生することが許されない状況です。適切に設計されたアプリケーションの場合、たとえエラーが発生したとしても、それが引き起こした例外状態を処理しようとする必要はありません。 Java では、エラーは Error のサブクラスを通じて記述されます。
例外:は、プログラム自体が処理できる例外です。 Exception クラスには、RuntimeException という重要なサブクラスがあります。 RuntimeException クラスとそのサブクラスは、「一般的な JVM 操作」によって引き起こされるエラーを表します。
たとえば、null オブジェクト参照を使用しようとした場合、ゼロで除算した場合、または配列が範囲外の場合は、実行時例外 (NullPointerException、ArithmeticException) および ArrayIndexOutOfBoundException がそれぞれスローされます。
Exception (例外) は、実行時例外と非実行時例外 (コンパイル例外) の 2 つのカテゴリに分類されます。プログラムはこれらの例外を可能な限り処理する必要があります。
ランタイム例外:は、NullPointerException (ヌル ポインター例外)、IndexOutOfBoundsException (添字範囲外例外) など、RuntimeException クラスとそのサブクラスのすべての例外です。これらの例外チェックされていない例外は、プログラム内でキャプチャして処理するかどうかを選択できます。
これらの例外は通常、プログラムのロジック エラーによって発生するため、プログラムは論理的な観点からこのような例外の発生を回避するように努める必要があります。実行時例外の特徴は、Java コンパイラがそれをチェックしないことです。つまり、このタイプの例外がプログラム内で発生する可能性がある場合、たとえそれが try-catch ステートメントでキャッチされなかったり、 throws 節を使用すると、コンパイルされて渡されます。
非実行時例外 (コンパイル例外):は RuntimeException 以外の例外であり、すべての型は Exception クラスとそのサブクラスに属します。
プログラムの文法上、必ず処理しなければならない例外であり、処理しないとプログラムはコンパイルされません。 IOException、SQLException など、およびユーザー定義の例外 通常、カスタムのチェック例外は必要ありません。
以上がJavaの例外とエラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。