如果有异常,则创建一个异常对象。
如果没有处理异常,该异常对象会发生什么,内部机制是什么?
答案 0 :(得分:3)
您可以查看How uncaught exceptions are handled:
Java实际上根据线程处理未捕获的异常 他们发生了什么。当特定的未发生异常发生时 线程,Java寻找所谓的未捕获异常处理程序, 实际上是接口UncaughtExceptionHandler的实现。 后一个接口有一个方法handleException(),其中 实施者覆盖采取适当的行动,如打印 堆栈跟踪到控制台。正如我们稍后会看到的,我们实际上可以 安装我们自己的UncaughtExceptionHandler实例来处理 未捕获的特定线程的异常,甚至是整个 系统
具体程序如下。当一个未被捕获的异常 发生时,JVM执行以下操作:
- 它在发生异常的Thread类上调用一个特殊的私有方法dispatchUncaughtException();
- 然后终止发生异常的线程1。
答案 1 :(得分:0)
如果Exception对象存在并且已经存在,那么Rahul已经很好地回答了。
有趣的是如何处理新的Exception对象,而不是扔掉。这是一种编程技术,可以获得一些运行时信息,比如堆栈,调用地点异常构造函数等等。
e= new Exception();
StackTraceElement[] st = e.getStackTrace();
for(StackTraceElement s:st)
{
s.getLineNumber()
}
// NO throw