黑马程序员技术交流社区

标题: runtimeException异常可以不用声明,可以不用处理吗? [打印本页]

作者: 奋上    时间: 2014-8-3 20:48
标题: runtimeException异常可以不用声明,可以不用处理吗?
如题,runtimeException异常可不可以既不声明也不处理?

作者: GoodBoy123    时间: 2014-8-3 22:35
可以。。。
作者: 阿磊    时间: 2014-8-4 08:51
是的 骚年。不用处理,如有这方面的错误 直接报错结束程序
作者: 晓风    时间: 2014-8-4 10:05
可以,因为这是运行时出现错误,说明你的代码有问题,程序已经无法继续运行,所有对RuntimeException的处理时不必要的。之所以不处理,目的就是要是程序停止,修正代码。
作者: 叶飞翔    时间: 2014-8-4 11:02
晓风 发表于 2014-8-4 10:05
可以,因为这是运行时出现错误,说明你的代码有问题,程序已经无法继续运行,所有对RuntimeException的处理 ...

分析的很好,谢谢指点。
作者: —Jimmy—    时间: 2014-8-4 11:07
RuntimeException程序走到这里,直接就停了.完全不用处理的.
作者: xj55646    时间: 2014-8-4 12:32
还是处理一下吧,作为程序员需要让自己的代码更加健壮,在现实工作中必须对潜在存在的错误进行拦截
作者: 怀念黑海岸    时间: 2014-8-4 12:41
xj55646 发表于 2014-8-4 12:32
还是处理一下吧,作为程序员需要让自己的代码更加健壮,在现实工作中必须对潜在存在的错误进行拦截 ...

RuntimeException是不能被处理的,产生这个异常的时候并不是意味着你的代码功能出错,而是程序异常运行造成的,最明显的一个例子就是sleep(time)方法,你传一个负数进去,你觉得合适吗?此时程序出错并不是因为sleep方法的功能有问题,而是你调用者乱传参数造成的,此时你要做的就是修正你调用该方法的那个位置的代码。为什么要我来处理因你调用者而产生的问题呢?是吧,这就是运行时异常不建议使用try语句处理的原因。也不建议抛出去。抛出去的话迟早都要你处理,处理了反而会掩盖问题的所在。
作者: xj55646    时间: 2014-8-4 12:48
怀念黑海岸 发表于 2014-8-4 12:41
RuntimeException是不能被处理的,产生这个异常的时候并不是意味着你的代码功能出错,而是程序异常运行造 ...

我说拦截,只是让用户感觉不出,你可以在catch(){}代码块中进行Bug的反馈,让开发者知道错误。如果你不处理程序会闪退,你觉得这样用户体验好吗?
作者: 怀念黑海岸    时间: 2014-8-4 13:22
xj55646 发表于 2014-8-4 12:48
我说拦截,只是让用户感觉不出,你可以在catch(){}代码块中进行Bug的反馈,让开发者知道错误。如果你不处 ...

你发布代码时你是需要对其测试的,经过测试好的代码用户是不会遇到这些问题的,你try语句中处理了异常并打印了异常,这会给我们一个误导:就比如刚才的那个sleep方法,这儿产生了异常的,我们想到的首先是sleep这个方法功能产生了问题,而不会去想是否是因为调用者的错误传参导致的错误,这是有区别的。
作者: liubea    时间: 2014-8-4 13:52
推荐不处理




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2