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

到底应该在action里面捕捉异常还是在service里面捕捉异常?

到底应该在action里面捕捉异常还是在service里面捕捉异常?

慕慕森 2019-03-14 18:15:27
比如我这一段service中的代码,到底是否应该在整个service方法里面用一个trycatch将所有代码全包裹起来,还是在调用的地方捕捉一下?public ResultBean<VenueCardResponseEntity> getVenueCardList(VenueCardRequestEntity venueCard) {        ResultBean<VenueCardResponseEntity> bean = new ResultBean<VenueCardResponseEntity>();        String queryVenueCardListResultStr = super.getRPCVenueServiceInstance().queryVenueCardList(JSON.toJSONString(venueCard));        if(StringUtils.isBlank(queryVenueCardListResultStr)){            bean.setCode(ErrorEnum.ERR_500.getIndex());            bean.setMsg("查询失败,服务层未返回结果!");            return bean;        }        PageDto<String> queryVenueCardPageDto;        List<VenueCardResponseEntity> venueCardList;        try {            ResultDto<String> queryVenueCardListResult = JSON.parseObject(queryVenueCardListResultStr,ResultDto.class);            if(!ErrorEnum.SUCCESS_200.getLongIndex().equals(queryVenueCardListResult.getCode())){                bean.setCode(queryVenueCardListResult.getCode());                bean.setMsg(queryVenueCardListResult.getErrMsg());                return bean;            }            queryVenueCardPageDto = JSON.parseObject(queryVenueCardListResult.getObject(),PageDto.class);            if(!(queryVenueCardPageDto.getTotalItems() > Long.parseLong("0"))){                bean.setCode(ErrorEnum.SUCCESS_200.getIndex());                bean.setMsg("未查询到符合条件的数据!");                return bean;            }            venueCardList = JSON.parseArray(queryVenueCardPageDto.getResult2(), VenueCardResponseEntity.class);        } catch (JSONException e) {            bean.setCode(ErrorEnum.ERR_500.getIndex());            bean.setMsg("查询失败,解析服务层返回值异常!");            return bean;        }我在解析JSON的时候,try catch一下,只捕捉JSONException,是否还应该再包裹一层捕捉exception的trycatch呢?还是应该在action调用这个service时捕捉一下??
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

action不应该捕获services层的异常
services应该处理好自己的业务逻辑,放回一个结果对象,在结果对象中告诉调用方services执行的结果及返回的数据内容。
dao层也是同样处理~

这样接口清晰~,要不你的告诉你的调用方我可能会抛出什么的异常,什么样的异常代表什么样的业务含义


查看完整回答
反对 回复 2019-04-16
  • 3 回答
  • 0 关注
  • 1039 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号