java中异常产生的原因

在java中,Throwable是所有错误(Error)或异常(Exception)的超类,其中,异常又分为编译时异常和运行时异常。

1.错误(Error)是程序员无法解决的,只能通过修改代码,而异常是可以避免的。比如,常见的错误(Error)有“内存溢出或系统崩溃”,内存溢出如新建的一个数组,其内存超过了jvm规定的对数组的内存的最大值。

2.异常时程序员必须解决,且可以避免的。编译时异常如IOException,ClassNotFoundException,运行时异常(RuntimeException)如ArrayIndexOutOfBoundsException。

以ArrayIndexOutOfBoundsException为例

 如上图所示:

当jvm检测到查询出现错误时,会做两件事:

一是:jvm会根据异常产生的原因创建一个异常对象,这个异常对象包含了异常产生的内容、原因和位置;

二是:jvm会查看该异常所在的方法有无解决异常的方法(try catch等),若没有,就把异常抛给方法的调用者,此处是main方法

当main方法接收到这个异常时,该main方法也没有对应的解决异常的方法(try catch),所以main方法只能把异常抛给jvm

此时jvm只能做两件事:

一是:在控制台打印出异常产生的原因、内容、位置

二是:终止当前java程序的执行,即中断程序


作者:用户9106934970994
链接:https://juejin.cn/post/6988118347929878542
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2021-07-23 22:49  功不唐捐-纯小喜  阅读(150)  评论(0编辑  收藏  举报