想跟大家讨论一个try···catch的问题

弧线之内 发布于 2015/12/14 15:38
阅读 404
收藏 0

想问大家一个关于代码写法的问题,具体看看下面两种,哪种写法更优秀:

第二个:

请大家看看哪种写法更优秀?为什么?

加载中
1
王涛
王涛
try {
    return doSomething(args);
} catch(Exception e) {
    logger.error(e);
    throw e;
}



巴拉迪维
巴拉迪维
抛出自定义的业务异常,更好。
1
insights
insights

没事,原因是人家要调用你的代码,又要判null,又要判有没有元素,累啊..直接判断一次就好了嘛.当然还是别返回null.还不如给个空集合利索.

0
MZHS
MZHS

第二个比较优秀,对于调用者很方便,不需要考虑null的情况,只需要拿着list遍历

弧线之内
弧线之内
回复 @MZHS : 恩,有道理~ 第一个其实是我写的,第二个是我们同事建议我写的。可我觉得第一个更健壮一点
MZHS
MZHS
回复 @弧线之内 : 有了异常,要么不知道怎么处理,直接抛给调用者,要么自己处理,打印出来算怎么回事?
MZHS
MZHS
有些同志认为第一个比较优秀是因为第一个在出错的时候可以及时体现出来,我认为这个是异常处理者要考虑的问题
弧线之内
弧线之内
可是从代码的健壮性来考虑,第一种不是更好吗
0
刚田武
刚田武
这两种写法还是有点区别的,循环里面出现异常了的话,第一种写法直接返回null,第二种会把已添加的返回
刚田武
刚田武
回复 @弧线之内 : http://www.oschina.net/question/2553117_2145215
刚田武
刚田武
回复 @弧线之内 : 你这个就已经是Controller里面的方法了吗?应该不是吧?我的想法是,Controller那一层再捕获异常,返回相应的error code给客户端;至于业务层,有异常的作死的抛,不要随随便便就把异常给吞了,到时看日志才能发现
弧线之内
弧线之内
回复 @齐德龙 : 但是我们需要把异常返回给用户啊,在用户眼里就是“网速不好,稍后再试” - -||
刚田武
刚田武
回复 @弧线之内 : 所以如下。。
刚田武
刚田武
我觉得return null还不如直接抛异常,界面最后一层再负责try catch
下一页
0
首席搬砖工程师
首席搬砖工程师
第二种是什么鬼,for循环出异常,list里只添加了一部分,这样会出现莫名其妙的问题,还不如出异常直接返回空
0
妹子楼顶有鸽子
妹子楼顶有鸽子
相对而言第二个比第一个好。但也好不到哪里...
弧线之内
弧线之内
我们都没有把查询放入try-catch诶,规范需要放入吗?
妹子楼顶有鸽子
妹子楼顶有鸽子
回复 @弧线之内 : 还有为什么查询的时候木有在try-catch里面...
妹子楼顶有鸽子
妹子楼顶有鸽子
回复 @弧线之内 :第一个,返回结果和定义的返回结果不一致,会导致调用方多一种校验,第二个,返回结果可能存在部分返回的情况,一个方法的调用应该要么成功要么失败,出现模拟两可的情况不太好。 其实异常信息不是单单一点代码就能决定的,这个与项目的异常体系和这个方法的使用环境都有很大的关系
弧线之内
弧线之内
为什么?
返回顶部
顶部