比如我这一段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;
}
bean.setCode(ErrorEnum.SUCCESS_200.getIndex());
bean.setMsg("查询成功");
bean.setSuccess(true);
bean.setRows(venueCardList);
bean.setTotal(queryVenueCardPageDto.getTotalItems());
return bean;
}
我在解析JSON的时候,try catch一下,只捕捉JSONException,是否还应该再包裹一层捕捉exception的trycatch呢?
还是应该在action调用这个service时捕捉一下?
action不应该捕获services层的异常
services应该处理好自己的业务逻辑,放回一个结果对象,在结果对象中告诉调用方services执行的结果及返回的数据内容。dao层也是同样处理这样接口清晰,要不你的告诉你的调用方我可能会抛出什么的异常,什么样的异常代表什么样的业务含义
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。