+ -
当前位置:首页 → 问答吧 → catch里写throw,用处是什么?

catch里写throw,用处是什么?

时间:2011-12-26

来源:互联网

在catch里再次throw出去一个异常,这种写法有什么用?如果需要将异常向上抛,那么在方法的后面直接throws不就好了吗?
请大牛们详细的解释下。。。
或者说这种写法好不好呢?
个人的看法是偏向不好,请指教

作者: sd4324530   发布时间: 2011-12-26

无用吧,多此一举

作者: dy110936   发布时间: 2011-12-26

封装成自定义业务异常类

作者: anhy   发布时间: 2011-12-26

以下是网上对这个问题的看法,我实在是不太明白,请大牛们看看,这种观点是不是对的:

如果说我一个业务逻辑比较复杂,并且,在不同的逻辑层中要做不一样的操作,就得这样,简单举例吧。
我要执行一个删除的sql语句(实际这个语句是有问题的)
在DAO层,先捕捉一次,打印错误的sql语句,
(业务上,如果执行错误,就走另一条业务路线),那么继续抛出异常
在逻辑层上继续捕获,做别的操作

作者: sd4324530   发布时间: 2011-12-26

引用 3 楼 anhy 的回复:

封装成自定义业务异常类


封装自己的异常类我知道,可是如果需要抛出自己的异常类,catch后的参数上写上不就可以了吗?干嘛要在catch里额外throw出来呢?

作者: sd4324530   发布时间: 2011-12-26

throw new Exception("xxoo....")

作者: aaaa8215   发布时间: 2011-12-26

有用 确实有用 我的willow库就这样用过

作者: pywepe   发布时间: 2011-12-26

当然有用。

比如自己定义很多业务异常类。。当你的问题是属性业务逻辑,或者数据不对时,catch以后,抛出你的业务异常,在上一层进行捕获,进行不同的处理

作者: 朝花夕拾   发布时间: 2011-12-26

用处是,在实现自身异常处理的同时告知调用方此异常的发生,并允许调用方可以捕获和处理此异常

这可以将每一层的异常处理分层整合。处理

有没有用可能得根据情况所定吧

比如说一套lib有自己的logger,那在自己的catch中以自己的方式log异常,之后也需要通知调用者此处出现异常,所以throw给调用方

作者: yktd26   发布时间: 2011-12-26

热门下载

更多