论坛首页 Java企业应用论坛

抛出异常还是约定返回值

浏览 21567 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (1)
作者 正文
   发表时间:2012-02-18  
用责任链模式吧。
0 请登录后投票
   发表时间:2012-02-18  
我个人习惯用异常处理,返回值的方式感觉有点面向过程了~
0 请登录后投票
   发表时间:2012-02-19  
业务条件比较少的话,根据具体的条件在action和service判断一下即可,
条件多,易变,且复杂的话,用规则引擎框架,或自己自定义一个xml规则库,里面定义好各种
条件的处理方式,把这个规则库放到一个代理里或aop里
0 请登录后投票
   发表时间:2012-02-19  
zhc0822 写道
用责任链模式吧。

+1
0 请登录后投票
   发表时间:2012-02-19  
用异常太乱了吧,你用过oracle pl/sql吗?  把异常当成正常流程的一部分你最不好的;
虽然有些人自己说了自己的想法:什么异常流之类的,看似正确的观点,但是本人不太认同,就用返回值吧,写成静态变量,简单易懂,谁都能接受
0 请登录后投票
   发表时间:2012-02-19  
可以直接在验证的时候返回字符或数字定义的返回码,也可以使用异常的方式定义errorCode,都是可以的,重要的定义一个规则,统一起来,不管是用户或开发者一开就明白。
0 请登录后投票
   发表时间:2012-02-20  

1:错误定义

 

ID
错误信息
跳转
跳转类型 描述
100001 您没有相关权限 /index.action R 删除订单无权限操作,拒绝

 

通过xml或者其他方式定义

模块太多可以多文件配置

 

2:错误工厂

加载错误定义文件,提供通过ID找到对应错误的实体对象

 

3:定义异常

个人觉得可以对每一个模块定义一个异常,每个异常的message为表格中得错误ID

 

4:异常处理

通过异常的message得到错误id,访问错误工厂类,得到错误实体,然后进行操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 请登录后投票
   发表时间:2012-02-20  
用REST,你还有这样的烦恼么?
0 请登录后投票
   发表时间:2012-02-20   最后修改:2012-02-20
异常只适用于不可意料的情景:例如网络连接错误,因为你无法意料到什么时候会出现网络断开的情况。
建议使用返回值,返回值最好采用二进制位表示,例如第X位表示高层应用错误,第Y位表示中间层错误,第Z位表示内核错误,等等,这样做的好处是便于扩展和管理。
0 请登录后投票
   发表时间:2012-02-21  
拥抱变化之美 写道
异常只适用于不可意料的情景:例如网络连接错误,因为你无法意料到什么时候会出现网络断开的情况。
建议使用返回值,返回值最好采用二进制位表示,例如第X位表示高层应用错误,第Y位表示中间层错误,第Z位表示内核错误,等等,这样做的好处是便于扩展和管理。



不仅是适用于无法预料的情况,也是为了避免大量的if else 。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics