Javaコア例外クラス
例外クラスの階層: Throwable
投擲可能
Throwable クラスは、Java 言語のすべてのエラーと例外のスーパークラスです。このクラス (またはそのサブクラスの 1 つ) のインスタンスであるオブジェクトのみが Java 仮想マシンによってスローされるか、Java throw ステートメントによってスローできます。参考
実際には、Throwable は通常、開発者によって直接使用されることはありません。代わりに、それは 2 つの直接のサブクラス、Error と Exception の基盤として機能します。
リーリー
エラー
Error は Throwable のサブクラスであり、合理的なアプリケーションが検出すべきではない重大な問題を示します。エラーは通常、JVM 自体で発生する異常な状態を表します参照
異常な状態とは、通常、アプリケーションの制御外の要因によって問題が発生し、通常は回復不可能であることを意味します。例: OutOfMemoryError、StackOverflowError
![Deep Dive into Java Exceptions](https://img.php.cn/upload/article/000/000/000/172401846448822.png)
例外
例外とは、プログラムの実行中に発生する予期しないイベントまたは条件を指します。キャッチを試みる必要があります。例外をキャッチすることで、予期せぬ状況を適切に処理し、プログラムがクラッシュしないようにできるはずです。
リーリー
例外の種類
Javaには2種類の例外があります。参考
チェックされた例外
チェック例外は、問題が発生する可能性があることがわかっている状況に似ているため、計画を立てる必要があります。これらは、try-catch ブロックを使用してキャッチするか、メソッド シグネチャ内で throws 節を使用して宣言する必要があります。メソッドがチェック例外をスローする可能性があり、それを処理しない場合、プログラムはコンパイルされません。
リーリー リーリー
未チェックの例外
未チェック例外、別名。実行時例外は、Java コンパイラーが処理する必要のない例外です。これらは RuntimeException のサブクラスです。チェック例外とは異なり、これらの例外をキャッチしたり、メソッド シグネチャで宣言したりする必要はありません。これらは通常、ロジックの欠陥、API の誤った使用、コード内の前提条件の違反などのプログラミング エラーを示します。
リーリー
Java 例外の一般的なタイプ
NullPointerException: アプリケーションが初期化されていないオブジェクト参照を使用しようとすると発生します。
リーリー
ArrayIndexOutOfBoundsException: 不正なインデックスを持つ配列にアクセスしようとするとスローされます。
リーリー
IllegalArgumentException: メソッドが不適切な引数を受け取ったときにスローされます。
リーリー
例外を処理する方法
トライキャッチ
コードのブロック内でスローされる可能性のある特定の例外を処理する場合は、try-catch を使用します
リーリー
マルチキャッチ
複数の例外タイプを同様の方法で処理したい場合は、マルチキャッチを使用します
リーリー
リソースを試す
ファイル、ソケット、データベース接続など、使用後に閉じる必要があるリソースを操作する場合は、try-with-resources を使用します。
リーリー
ついに
例外がスローされたかどうかに関係なく、特定のコードが確実に実行されるようにする必要がある場合は、finally ブロックを使用します
リーリー
例外処理のベストプラクティス
例外を無視しないでください: 例外は単に捕捉して無視するのではなく、適切に処理する必要があります。
リーリー
特定の例外を使用する: 一般的な例外を使用するのではなく、特定の例外を使用します。
リーリー
適切な対処方法:
リーリー
クリーンなリソース処理: メモリリークを避けるために常にリソースを閉じます
リーリー
カスタム例外: 標準例外が特定のエラー条件に適合しない場合にカスタム例外を作成します。
リーリー
ロギング: デバッグとメンテナンスのために例外をログに記録します。
リーリー
例外の乱用を避ける: フローを制御するために例外を使用しないように警告します。これらは、本当に例外的な状況を処理する場合にのみ使用する必要があります。
リーリー
適切な対処方法:
リーリー
フィードバックは役に立ちます:)
以上がJava 例外の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。