永发信息网

java中抛出RuntimeException异常,为什么可以不用撰写代码去捕获它?

答案:6  悬赏:0  手机版
解决时间 2021-03-14 02:18
java中抛出RuntimeException异常,为什么可以不用撰写代码去捕获它?
最佳答案
这是java的默认配置。
当你把一个异常定义在方法的throws定义中,你就可以不处理这个异常,系统会自动把该异常抛出。 而RuntimeException则是java设计中所有方法都默认定义在throws中了,所以只要你不捕获,就会一层一层的往上抛出。
除非你显示的标准要捕获它。否则不会被捕获。也不会造成编译异常。
其实大部分的RuntimeException,要么是系统异常。无法处理。例如网络问题。
要么就是应该在UT中发现的,例如空指针异常。
全部回答
有具体代码吗 发来看看
因为它是运行期的异常,只有编译期的异常才能被捕获!
因为JVM自动会捕获RuntimeException,而这些异常,编辑器是无法检测的!
至于有中那些子类,多了去了,想了解的话,去看api

异常分为运行时异常(RuntimeException)、受检异常(Exception)、系统错误error。
RuntimeException,也就是运行时异常,表示代码本身存在BUG,比如ArrayIndexOutOfBoundsException,数组下标越界,数组定义的长度不够实际使用,代码若不调BUG进行处理肯定还会报错,控制台一旦报RuntimeException,就必须在代码中找BUG,因为代码BUG是人为粗心制造的,不是try-catch一下就能解决的。try-catch用在代码BUG上是毫无意义的,只需要写代码时谨慎点就能减少BUG,而不是try-catch。
非RuntimeException,就是受检异常。比如处理文件流时的I/O问题,就属于编译时异常,相当于假设有IO异常就利用try-catch对其进行处理,或者 throws即可。
error,通常是系统出现了不可控制的错误,这个通常与程序无关,所以是不需要处理的。

下面给出运行时异常与受检异常的清晰定义:
①受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。例如,喷墨打印机在打印文件时,如果纸用完或者墨水用完,就会暂停打印,等待用户添加打印纸或更换墨盒,如果用户添加了打印纸或更换了墨盒,就能继续打印。
②运行时异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误操作。一旦出现了错误操作,建议终止程序并仔细的debug,因此Java编译器不检查这种异常。
有很多事都是不可以预知的,比如你在路上走很难保证不被谁磕到碰到,事先准备去应付这种事情是很无聊且麻烦的。RuntimeException也是这个道理。要想真搞明白,好好看看书和API的帮助文档吧,在这里几句话是说不清楚的。
要想搞清楚是为什么,就要看外国人写的书。推荐Thinking in java。国内作者的就算了,太次
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
"滚"是什么意思?
找一张图片 一只狼低着头孤落落的走在森林边
北斗星锅子烤吧怎么去啊,有知道地址的么
从龙里到毕节要多少时间
潼蒺藜和刺蒺藜有什么区别
奇林汽车咨询公司地址有知道的么?有点事想过
发达国家退休养老金年龄分别为几年
怎么用M文件调用Matlab simulink中的模块或者
济南市脑科医院是国办的吗
主流烤吧地址在什么地方,想过去办事
经常化浓妆的女人是什么样的女人?
怎样让12岁的孩子,当演员?
小米,OPPO和VIVO为什么不上市
请问赵静这个名字用韩文怎么翻译啊?怎么读的
村卫生室医疗机构简况怎么写
推荐资讯
北京卷烟厂生产那些品牌的香烟
8三分,库里3节轻松34+6 求助空乘反被威胁
爱喜幻变多少钱一条
求《他来时有曙光》陌言川的txt完整版 番外
女生165 52公斤算胖吗
在新华保险代的款没还而且两年没交费怎么办
k273列车14车021号是什么座位
破酥包子王和平店在什么地方啊,我要过去处理
顺隆家具城A厅北3门这个地址在什么地方,我要
keil仿真器无法连接咋办?高人指导!!
呼叫救护车的钱谁来出?
最近 土星 在天空什么位置 怎么观测
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?