直接上代码
@ControllerAdvice
public class GlobalExceptionHandler {
private final String SYSTEM_ERR ="系统异常处理,请联系管理员";
@ExceptionHandler(value = Exception.class)
@ResponseBody
public JSON errorHandler(Exception ex) {
//do something
return JsonBuilder.builder().put("code", 500).put("msg", SYSTEM_ERR).build();
}
}
JsonBuilder.java
import com.alibaba.fastjson.JSONObject;
/**
* @author Y.S.K on 15/06/2018.
*/
public class JsonBuilder {
private JSONObject jsonObject;
private JsonBuilder() {
jsonObject = new JSONObject();
}
public static JsonBuilder builder() {
return new JsonBuilder();
}
public static JsonBuilder builder(String key, Object obj) {
return builder().put(key, obj);
}
public JsonBuilder put(String key, Object obj) {
this.jsonObject.put(key, obj);
return this;
}
public JSONObject build() {
return jsonObject;
}
}
通过@ControllerAdvice和@ExceptionHandler两个注解,我们可以对项目中的所有异常进行捕捉,我这里进行了一个统一的返回500的错误信息,大家可以根据自己的需求,再进行定制。