黑马程序员技术交流社区

标题: 关于抛异常的一些疑问!! [打印本页]

作者: 苏格拉底的弟子    时间: 2012-1-9 11:14
标题: 关于抛异常的一些疑问!!
为什么需要抛异常啊,,而不自己处理啊??  打个比方吧..  假如A调用B方法 B调用C方法 ,,  C里面出现了异常,C 就抛出异常了,, 然后B 和C 都可能要做Tty 或者也抛..

我想假如第一次C出现了异常  不是抛出,而是自己处理了,,,  那后面B 和C用的时候不就更方便了..而不用抛出 或者处理了....
我哪里没弄明白啊??
作者: 朱泽宇    时间: 2012-1-9 11:27
抛出异常实际是作为另一种返回值来使用的。 这样做的好处一是可以不干扰正常的返回值,
另一个是调用者必须处理异常,而不像以前c语言返回一个整数型的错误码,调用者往往将它忽略了
还有就是为了不破坏代码逻辑
比如
dao层 只是和数据库交互的,有异常的话(包括自己定义的异常)你要抛出,不要在dao层进行过多的逻辑操作,你可以在service层捕获 然后抛出异常,在view层对异常进行处理
作者: zl918    时间: 2012-1-9 13:12
抛异常是因为自己解决不了
就像定火车票一样,你现在看到还有一张票,你点预定了,B也看到了,也点预定了,你们都提交订单了,可是就一张票了,这是数据处理层就把那张票给了你,因为网速快啊,但 B怎么办呢,这是数据处理层就得让它的上一层知道现在已经没票了啊,所以就向上抛异常了.
作者: lvwenwen88    时间: 2012-1-10 19:31
样做的好处一是可以不干扰正常的返回值,
另一个是调用者必须处理异常,而不像以前c语言返回一个整数型的错误码,调用者往往将它忽略了
还有就是为了不破坏代码逻辑
比如
dao层 只是和数据库交互的,有异常的话(包括自己定义的异常)你要抛出,不要在dao层进行过多的逻辑操作,你可以在service层捕获 然后抛出异常,在view层对异常进行处理
作者: 刘明瑞    时间: 2012-1-10 20:50
一方面:假如你自己开发了一个类,代码里面某个地方可能会引发某某错误,你有你的解决方法,但是别人也有他自己期望的解决方法啊,所以你就抛出来呗,别人拿到了就会用自己的方法对其做出详细处理。
另一方面:制定标准永远是最牛B的。我就告诉你这里可能会有问题,具体怎么处理我不管,你爱咋整咋整。




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