基本的な Java とさまざまな種類の Throwable について詳しく学習しようとしていますが、例外とエラーの違いを教えていただけますか?
ベストアンサー1
エラーはキャッチしたり処理したりしてはいけません(ごくまれな場合を除く)。例外は例外処理の基本です。Javadocそれをうまく説明しています:
Error は Throwable のサブクラスであり、適切なアプリケーションがキャッチしようとすべきではない重大な問題を示します。このようなエラーのほとんどは異常な状態です。
のサブクラスをいくつか見てみますError
。JavaDoc コメントの一部を紹介します。
AnnotationFormatError
- 注釈パーサーがクラス ファイルから注釈を読み取ろうとし、注釈が不正な形式であると判断した場合、スローされます。AssertionError
- アサーションが失敗したことを示すためにスローされます。LinkageError
- LinkageError のサブクラスは、クラスが別のクラスに何らかの依存関係を持っていることを示します。ただし、後者のクラスは、前のクラスのコンパイル後に互換性のない変更が加えられています。VirtualMachineError
- Java 仮想マシンが壊れているか、動作を継続するために必要なリソースが不足していることを示すためにスローされます。
実際には、次の 3 つの重要なサブカテゴリがありますThrowable
。
Error
- 重大な問題が発生した場合は、ほとんどのアプリケーションは問題に対処しようとするのではなくクラッシュするはずです。- 未チェック例外 (別名) - 多くの場合、や不正な引数
RuntimeException
などのプログラミング エラーです。アプリケーションは、このカテゴリを処理または回復できる場合があります。または、少なくともスレッドのメソッドでこれをキャッチし、エラーをログに記録して、実行を続行できます。NullPointerException
Throwable
run()
FileNotFoundException
チェック済み例外 (別名、その他すべて) - アプリケーションは、以下など、残りの例外をキャッチして意味のある処理を実行できることが期待されますTimeoutException
。