《果然新鲜》电商项目(23)- 全局异常捕获

Posted IT老刘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《果然新鲜》电商项目(23)- 全局异常捕获相关的知识,希望对你有一定的参考价值。

引言

在上一节《果然新鲜电商项目(22)- DTO接口细分》,主要讲解如何使用DTO来细分接口中的参数,并提高接口的安全性。

本文主要讲解全局异常捕获。

1.定义全局异常捕获类

1.在通用模块(guoranxinxian-shop-common-core)增加全局捕获异常捕获类:

package com.guoranxinxian.error;

import com.alibaba.fastjson.JSONObject;
import com.guoranxinxian.api.BaseResponse;
import com.guoranxinxian.entity.BaseApiService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * description: 全局捕获异常
 */
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler extends BaseApiService<JSONObject> 
    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public BaseResponse<JSONObject> exceptionHandler(Exception e) 
        log.info("###全局捕获异常###,error:", e);
        return setResultError("系统错误!");
    



2.移动会员启动类(AppMember)以及微信启动类(AppWeixin)到com.guoranxinxian这个包里,不然捕获不了异常

3.自定义抛异常,在existMobile接口抛出异常:

2. 测试

启动会员微服务,使用Swagger访问existMobile接口(根据手机号码查询是否已经存在):


可以看到进入了断点:

总结

本文主要讲解了全局异常捕获的方式。

以上是关于《果然新鲜》电商项目(23)- 全局异常捕获的主要内容,如果未能解决你的问题,请参考以下文章

《果然新鲜》电商项目(27)- 门户界面

《果然新鲜》电商项目(22)- DTO接口细分

《果然新鲜》电商项目(12)- Maven私服仓库使用

《果然新鲜》电商项目(29)- 门户注册功能

《果然新鲜》电商项目(25)- 会员唯一登录

《果然新鲜》电商项目(40)- SSO单点登录(退出功能)