Throwableクラスとは何ですか? Throwable クラスは、Java 言語のすべてのエラーまたは例外のスーパー クラスであり、その機能はスタックに格納されているエラー情報を抽出することです。
Error クラスはThrowable クラスのサブクラスであり、システム例外、仮想マシン例外、およびユーザーが防ぐことができないその他の問題が含まれます。
Exception クラスは、Throwable クラスのサブクラスでもあり、プログラム自体で処理できる例外であり、実行時例外 (チェックあり) と非実行時例外 (チェックなし) に分けられます。実行時例外は処理される場合と処理されない場合があります。非実行時例外は処理される必要があります。
ランタイム例外は、NullPointerException、IndexOutOfBoundsException など、 RuntimeException クラスとそのサブクラスのすべての例外です。これらの例外はチェックされず、プログラム内でキャプチャされることも処理されないこともあります。これらの例外は通常、プログラムの論理エラーによって発生するため、プログラムは論理的な観点からこのような例外の発生を回避するように努める必要があります。
RuntimeException が発生した場合、それを処理する必要はなく、通常は仮想マシンが引き継ぎます。
実行時例外が発生した後、例外がキャッチされて処理されない場合 (つまり、キャッチがない場合)、システムは例外を上位層までスローします (マルチスレッドの場合)。 Thread.run()。シングルスレッドの場合は、Thread.run() によってスローされます。スロー後、スレッドの場合はスレッドが終了します。メインプログラムによって例外がスローされた場合、プログラム全体が終了します。ランタイム例外は Exception クラスのサブクラスであり、一般例外の特性も備えています。つまり、catch ブロックで処理できます。つまり、実行時例外を処理しないと、実行時例外が発生した後、スレッドが終了するか、メインプログラムが終了します。
終了したくない場合は、すべてのランタイム例外をキャッチし、この処理スレッドを決して終了させないようにする必要があります。キューに異常データが出現した場合、異常データを破棄してログを記録するのが通常の処理です。異常なデータの存在は、その後の正常なデータの処理に影響を与えてはなりません。
非実行時例外は、RuntimeException 以外の例外であり、すべて Exception クラスとそのサブクラスに属します。例: IOException、SQLException など、およびユーザー定義の例外。この種の例外の場合、Java コンパイラはこれらの例外をキャッチして処理するように強制します。そうしないと、プログラムはコンパイルされません。したがって、この種の例外に直面した場合、好むと好まざるにかかわらず、考えられる例外を処理するために多くの catch ブロックを作成する必要があります。