例外処理
3375 ワード
プログラムエラー
プログラムが実行中に何らかの原因で誤動作したり、正常に終了しなかったりした場合をエラーまたはエラーと呼びます.
エラー
コンパイルエラー:コンパイル時に発生したエラー(最良のエラー)
ランタイムエラー:ランタイムに発生したエラー
論理エラー:実行できますが、動作と意図は異なります.
コンパイラは基本事項をフィルタできますが、実行時に発生する可能性のある潜在的なエラーは排除できません.
Javaは、実行時に発生する可能性のあるプログラムエラーを「エラー」と「例外」の2つに分類します.
エラー:プログラムコードで処理できない重大なエラー
例外:プログラムコードによる軽微なエラー
例外クラスの階層
JAvaは、実行時に発生する可能性のあるエラーをクラスとして定義します.
すべての例外の最上位の祖先はExceptionクラスであり、Exceptionから継承階層を表示すると以下のようになります.
上の継承階層図の青いブロックのレベルは、他のレベルとは異なります.
Exceptionクラス:ユーザーエラーなど外部要因による異常
(ArrayIndexOutof..., NullPointer..., Arithmetic...)
RuntimeExceptionクラス:プログラマのエラーによる例外
(FileNotFound..., ClassNotFound..., DataFormat...)
例外処理方法
printStackTrace()
:例外発生時にスタック内のメソッドを呼び出す情報と例外メッセージを画面に出力getMessage()
:発生した例外クラスインスタンスに格納されたメッセージを取得することができる.異常をきたす
キーワード
throw
を使用して、例外を故意に生成することができる.new Exception(String)
を使用して新しい例外クラスオブジェクトを作成し、throw
演算子を使用して放出します.Stringをコンストラクション関数に入れると、そのStringはExceptionインスタンスにメッセージとして格納されます.
これは
getMessage()
と解読された情報です.メソッドに例外を宣言
メソッドに例外を宣言することもできます.
メソッドで例外を宣言する場合は、メソッドの宣言子に
throws
を使用して、メソッドで発生する可能性のある例外を書き出します.複数の例外は、カンマ「,」で宣言できます.void method() throws Exception1, Exception2, Exception3 { }
最も古いExceptionクラスを宣言すると、すべてのタイプのExceptionが除外されます.以前にoverlightingで見たように、overlightingでは宣言された例外の個数だけでなく、継承関係も考慮されます.
カスタム例外の作成
プログラマは、新しい例外クラスを定義して使用できます.
class MyException extends Exception {
MyException(String msg) {
super(msg);
}
}
Exceptionクラスから継承して作成します.必要に応じて、メンバー変数またはメソッドを追加できます.
Exceptionクラスは、作成時にString値を受信してメッセージとして保存できます.
ユーザー定義の例外クラスドメインメッセージを保存するには、Stringをパラメータとするジェネレータを追加する必要があります.
復習しましょう。
この章は少し軽く読む傾向がある.
現在、例外の処理はまだ内功が足りないようだ.
例外処理こそ経験の積み重ねであり,必ず後で読まなければならない.
Reference
この問題について(例外処理), 我々は、より多くの情報をここで見つけました https://velog.io/@jaca/예외처리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol