在java中,Throwable是所有错误(Error)或异常(Exception)的超类,其中,异常又分为编译时异常和运行时异常。
1.错误(Error)是程序员无法解决的,只能通过修改代码,而异常是可以避免的。比如,常见的错误(Error)有“内存溢出或系统崩溃”,内存溢出如新建的一个数组,其内存超过了jvm规定的对数组的内存的最大值。
2.异常时程序员必须解决,且可以避免的。编译时异常如IOException,ClassNotFoundException,运行时异常(RuntimeException)如Arrayindexoutofboundsexception。
以Arrayindexoutofboundsexception为例
如上图所示:
一是:jvm会根据异常产生的原因创建一个异常对象,这个异常对象包含了异常产生的内容、原因和位置;
二是:jvm会查看该异常所在的方法有无解决异常的方法(try catch等),若没有,就把异常抛给方法的调用者,此处是main方法
当main方法接收到这个异常时,该main方法也没有对应的解决异常的方法(try catch),所以main方法只能把异常抛给jvm
此时jvm只能做两件事:
一是:在控制台打印出异常产生的原因、内容、位置
二是:终止当前java程序的执行,即中断程序
作者:用户9106934970994
链接:https://juejin.cn/post/6988118347929878542
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。