Если есть исключение, создается объект исключения.Каково внутреннее поведение обработки исключений?
Если исключение не обрабатывалось, что случилось с этим объектом исключения и каков внутренний механизм?
Если есть исключение, создается объект исключения.Каково внутреннее поведение обработки исключений?
Если исключение не обрабатывалось, что случилось с этим объектом исключения и каков внутренний механизм?
Вы можете проверить How uncaught exceptions are handled:
Java фактически обрабатывает пойманные исключения в соответствии с нитью в которой они происходят. Когда нечеткое исключение возникает в конкретном потоке , Java ищет то, что называется обработчиком непрозрачных исключений, фактически является реализацией интерфейса UncaughtExceptionHandler. Последний интерфейс имеет метод handleException(), который реализует исполнитель , чтобы предпринять соответствующие действия, такие как печать трассировки стека на консоль. Как мы сейчас увидим, мы можем на самом деле установить наш собственный экземпляр UncaughtExceptionHandler для обработки неперехваченных исключений определенного потока или даже для всей системы .
Конкретная процедура заключается в следующем. Когда перехватывается исключение происходит, JVM выполняет следующие действия:
- это вызывает особый частный метод, dispatchUncaughtException(), на класс Thread, в котором происходит исключение;
- затем завершает поток, в котором произошло исключение1.
Если объект Exception существует и брошено, то Рахул уже хорошо ответил.
Интересно, что делать с новым объектом Exception, а не сбрасывать. Это технология программирования, позволяющая получить некоторую информацию о времени выполнения, например стек, место вызова конструктора исключений и т. Д.
e= new Exception();
StackTraceElement[] st = e.getStackTrace();
for(StackTraceElement s:st)
{
s.getLineNumber()
}
// NO throw