到底应该在action里面捕捉异常还是在service里面捕捉异常?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

2016-03-10 10:41:43 2325 1

比如我这一段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时捕捉一下?

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:57:05

    action不应该捕获services层的异常
    services应该处理好自己的业务逻辑,放回一个结果对象,在结果对象中告诉调用方services执行的结果及返回的数据内容。dao层也是同样处理这样接口清晰,要不你的告诉你的调用方我可能会抛出什么的异常,什么样的异常代表什么样的业务含义

    0 0
相关问答

5

回答

Spark 【问答合集】

社区小助手 2019-05-29 14:13:40 129644浏览量 回答数 5

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 96126浏览量 回答数 28

5

回答

设置跨域资源共享CORS并使用JS表单PostObject直接上传到OSS

wood23 2015-02-12 08:11:09 41501浏览量 回答数 5

3

回答

Logstash采集文件名称以及自定义格式的日志文件采集

Snorlax 2019-06-18 11:51:28 115841浏览量 回答数 3

1

回答

出现这个问题求解决This XML file does not appear to have any

淘合肥 2017-04-08 21:07:00 99964浏览量 回答数 1

43

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 143066浏览量 回答数 43

21

回答

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2018-05-31 13:57:45 49011浏览量 回答数 21

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 483785浏览量 回答数 24

19

回答

小试用,大学问菜鸟也要知道如何去试用之云服务器测评

universitylife 2013-05-14 13:39:36 36909浏览量 回答数 19

19

回答

云数据库RDS MySQL版【问答合集】

我是管理员 2018-08-03 15:10:37 53757浏览量 回答数 19
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载