GlobalExceptionHandler.java



package com.haizhi.baixin.lgscreen.controller;

import com.haizhi.baixin.lgscreen.common.exception.BusiException;
import com.haizhi.baixin.lgscreen.common.model.Response;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;

/**
* @date 2020/6/28 21:49
* @description
**/
@RestController
@ControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(BusiException.class)
public Response exception(BusiException ex){
return Response.fail(ex.getBusiEnum().getCode(),ex.getMessage());
}

@ExceptionHandler(Throwable.class)
public Response exception(Throwable ex){
return Response.error(ex.getMessage());
}
}


Response.java



package com.haizhi.baixin.lgscreen.common.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* @date 2020/6/28 21:33
* @description 返回结果
**/
@Data
@ApiModel("返回结果")
public class Response<T> {

@ApiModelProperty(value = "返回状态",example = "100:成功,-100:错误")
private Integer code;

@ApiModelProperty("错误信息")
private String message;

@ApiModelProperty("返回数据")
private T data;

private Response(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}

public static Response success(){
return success(null);
}

public static <T> Response success(T data){
return new Response(Constant.SUCCESS,"success",data);
}

public static Response fail(Integer code, String message){
return new Response(code,message,null);
}

public static Response error(String message){
return new Response(Constant.ERROR,message,null);
}

}


BusiException.java



package com.haizhi.baixin.lgscreen.common.exception;

/**
* @date 2020/6/28 21:51
* @description
**/
public class BusiException extends RuntimeException{

private BusiEnum busiEnum;

public BusiException(BusiEnum busiEnum) {
super(busiEnum.getMessage());
this.busiEnum = busiEnum;
}

public BusiEnum getBusiEnum() {
return busiEnum;
}

public void setBusiEnum(BusiEnum busiEnum) {
this.busiEnum = busiEnum;
}
}


BusiEnum.java



package com.haizhi.baixin.lgscreen.common.exception;

/**
* @date 2020/6/28 21:52
* @description
**/
public enum BusiEnum {

SUCCESS(100,"成功"),
ERROR(-100,"系统错误");

private Integer code;
private String message;

BusiEnum(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public void setCode(Integer code) {
this.code = code;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}
}


 Constant.java



package com.haizhi.baixin.lgscreen.common.model;

/**
* @date 2020/6/28 21:36
* @description
**/
public class Constant {
public static final Integer SUCCESS = 100;

public static final Integer ERROR = -100;

public static final String DISTRIBUTION_GR = "gr"; //分布情况Flag-个人

public static final String DISTRIBUTION_XW = "xw"; //分布情况Flag-小微企业

public static final String RISKALLTYPE_Y = "y"; //累计调用策略统计方式-当年

public static final String RISKALLTYPE_H = "h"; //累计调用策略统计方式-当天

public static final Integer MAP_DEFAULT_COUNT = 20; //地图默认查询多少条

public static final Integer SMART_DEFAULT_COUNT = 200; //地图默认查询多少条

public static final String RISK_GRAPH_TYPE_CITY = "city"; //风险画像类型-城市

public static final String RISK_GRAPH_TYPE_DEVICE = "device"; //风险画像类型-设备

public static final String RISK_GRAPH_TYPE_RISKTYPE = "risktype"; //风险画像类型-风险类型
}


 


作者:习惯沉淀


如果文中有误或对本文有不同的见解,欢迎在评论区留言。