为了账号安全,请及时绑定邮箱和手机立即绑定

为什么发现了异常不解决它,而要抛出呢?

为什么发现了异常不解决它,而要抛出呢?

难道是特定的应用场景必须要用异常处理么?求高手解答!

正在回答

1 回答

抛异常是迟早要给某个类处理的。举个例子你就懂了。

假如说A方法掉调用-->B方法调用-->C方法。

然后在B和C方法里定义了throws Exception. A方法里定义了Try Catch。

那么调用A方法时,在执行到C方法里出现了异常,那么这个异常就会从C抛到B,再从B抛到A.

在A里的try catch就会捕获这个异常,然后你就可以在catch写自己的处理代码。


如果A里也是throws Exception,那么会一直向外抛异常,最后抛给Object,也就是java 虚拟机来处理。


为什么当时出现了异常不去处理呢?


1.你业务逻辑调用的是A方法,你执行了A方法,当然要在A里得到异常,然后来处理。如果在C里面就处理异常,这就破坏程序结构了。

2.A调用了C方法,假如还接着也调用了D,E,F方法,假如他们都有可能抛出异常,你说是在A里面获得处理一次好,还是在C,D,E,F得到了异常,每个都当时处理一下的好?


当时就处理异常理论上也是可以的,而且大多数时候,到底在哪处理异常,是要根据需求和项目的具体情况的。


0 回复 有任何疑惑可以回复我~
#1

木刻雪原 提问者

非常感谢!
2016-07-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么发现了异常不解决它,而要抛出呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信