Java之线程异常的一个分析,写的挺不错的哈,通俗易懂(转载)

编译时异常必须显示处理,运行时异常交给虚拟机。

运行时异常可以不处理。当出现这样的异常时,总是由虚拟机接管。比如我们从来没有人去处理过Null Pointer Exception异常,它就是运行时异常,并且这种异常还是最常见的异常之一。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往不对它处理罢了。也就是说,如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。

1、程序运行时异常由Java虚拟机自动进行处理
2、使用try-catch-finally语句捕获异常
3、可使用throw语句抛出异常

 4、捕获到的异常不仅可以在当前方法中处理,还可以将异常抛给调用它的上一级方法来处理,请看第三条throw

猜你喜欢

转载自blog.csdn.net/cadi2011/article/details/86470778