[JAVAの慣例]異常処理
プログラムエラー
エラーとは?
プログラムが実行中に何らかの理由で障害または異常終了した場合、この結果の原因
[エラータイプ]
[コンパイルプロセス]
1.ソースコードをコンパイルする場合、コンパイラは、エラーチェックやデータチェックなどのソースコード(.java)に対して基本的なチェックを実行します.
2.すべてのコンパイルエラーを修正し、クラスファイル(.class)を生成し、生成したクラスを実行
[ランタイムエラー?]
エラー(error):プログラムコードで処理できない重大なエラー
[OutOfMemoryError, StackOverflowError]
異常(exception):プログラムコードによる微小なエラー
例外クラス階層
•例外クラスは、次の2つに分類できます.
1. RuntimeException Class
2. Exception Class
[1]RuntimeExceptionクラス:プログラマのエラーによる例外
-ARayIndexOutOfBoundException:アレイ範囲外
-NullPointerExceptionの呼び出し:null参照変数のメンバー
-ClassCastException:クラスからクラスへの変換エラー
[2]Exception Class:外部からの影響を受けたエラーは、プログラムユーザによって引き起こされる
-FileNotFountException:存在しないファイルへのアクセス
-ClassNotFoundException:クラス名入力エラー
-DataFormatException:入力データ型エラー
try-catch
•異常処理
プログラムの実行中に発生する可能性のある予期せぬ例外のコードを記述します.
目標は異常発生による異常終了を防止し、正常な運転を維持することである.
try-catchストリーム
▶試行ブロック内に異常が発生した場合
1.異常ブロックがないかチェックする
2.一致するブロックがある場合は、文を実行し、try-catch文全体を終了します.
3.一致ブロックがない場合は例外処理はできません.
▶試行ブロック内に異常が発生していない場合
:catch blockを通らず、全体try-catchゲートです.
•(0/0に相当する例外処理があるため、3は次の例外処理catch文に進みます.)
[運転結果]
1
2
3
5
6
•異常原因の特定方法
printStackTrace():例外発生時にスタック内のメソッドを呼び出す情報と例外メッセージを出力します.
getMessage():発生した例外クラスインスタンスに格納されたメッセージ
•マルチキャプチャブロック
「|」記号を使用して重複コードを減らし、複数の例外処理を行うことができます.
[ポイント]
祖先|子孫✘:コンパイルエラー(祖先のみを使用するため)
共通分母の祖先例外クラスで宣言されたメンバーのみ使用可能
メソッドに例外を宣言
void method() throws Exception1, Exception2, Exception3 {
}
最上位レベルのExceptionクラスをメソッドに宣言すると、すべてのタイプの例外が発生する可能性があります.メソッドを作成する際、Javaはメソッドの宣言でメソッドに現れる可能性のある例外を指摘し、そのメソッドを強制的に使用する側が処理するため、堅牢なプログラムコードを記述することができます.
最終ブロック
例外が発生するかどうかにかかわらず、実行する必要があるコード
try-catch-finally(異常がなければtry→finally)
[運転結果]
正常に呼び出されました.
finally
mainに戻った
これはtryを実行して戻ってもmainではなくfinallyを経由することを示している.
自動リソース戻りtry-with-resource
try-with-resourceは主にI/Oクラスを使用するために使用され、通常はクラスを使用した後に閉じる必要がある場合に使用されます.
•close()を使用してオフにできますが、close()で異常が発生した場合を考慮する必要があります.
try-with-resource文のカッコに生成オブジェクトの文を挿入すると、tryを離れるとcloseが自動的に呼び出されます(closeを呼び出す必要はありません).
2つ以上の例外が発生した場合、エラーに関する情報のみが最後に出力された場合は、「抑制」と呼ばれる抑制エラーですべての例外の情報を表示できます.
いじょう投げ
例外を発生させる方法と呼び出す方法はいずれも1つの異常を処理できる(異常を処理してから再発する方法)
なぜ
リンク例外
Throwable getCause()原因異常を返す
Reference
この問題について([JAVAの慣例]異常処理), 我々は、より多くの情報をここで見つけました https://velog.io/@orpsh1941/JAVA의-정석예외처리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol