Uncaught Exception


入る前に。


Exceptionはerrorとは異なります.
システムレベルエラー:error
開発者レベルでエラー:exception

Exception

RunTime Exceptionを基準として、checkeduncheckedの例外に分けられる.

チェック
  • :コンパイルフェーズ残り
  • unced:実行男
  • ではUncatch execpeptionとは何ですか?

  • は、通常、Javaにおいてtry-catchを用いる異常処理
  • を行う.
  • 投げは예외 전파
  • に達することができます.
    しかし、異常処理を一切行わないとどうなりますか?
    public class MainClass {
    	public static void main(String[] args) {
        	int[] arr = new int[10];
            arr[21]= 10;
        }
    }
    このときエラーメッセージが表示され、エラー処理が行われず、エラーメッセージを撮影します.
    ArrayIndexOutOfBoundsException

    理由は。Uncaught Exception Handler


    正解はjava ThreadクラスのUncaughtExceptionHandlerというHandlerがデフォルトで登録されているHandlerで残りのエラーを処理することです.UncaughtExceptionHandlerが別途設定されていない場合、javaで基本的に定義されたUncaughtExceptionHandlerが実行されます.
    上記のDefaultUncaughtExceptionHandlerを直接定義して使用することもできる.

    上記のプロセッサにより、異常が発生したスレッドのスタックトラッキング全体、スレッド名、異常が発生した関数のスタックトラッキング、エラーメッセージ、エラーが発生したクラス名、メソッド名、ファイル名などを得ることができる.
    またjavaデバッグ構成部品データがまだ存在する場合は、エラーが発生した行番号も取得できます.(構成部品データがデバッグされていない場合は、Unknownが表示されます.)
    上で定義したハンドルを使用して登録します.
    Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler());

    Reference


    https://semtax.tistory.com/81
    https://www.nextree.co.kr/p3239/