先说为什么要设置全局异常。比如说,你程序出错了,500错误,大家都知道,程序出错就不会往下面执行,但是客户端那边还是一直等待状态,所以,我们后台无论正常还是报错都要给客户端返回数据。当然,我们可以try一下,程序还会往下面执行,但是不是所有的异常都需要try的。知道了重要性之后,就看看springmvc是如何实现了把。
首先,我们需要一个new一个返回前端一个数据格式。这个是非常有必要的。以后我们返回前端的数据都是返回这个对象
JsonData.java
package com.mmall.common; import lombok.Data; import java.util.HashMap; import java.util.Map; @Data public class JsonData { private boolean ret; private String msg; private Object data; public JsonData(boolean ret) { this.ret = ret; } public static JsonData success(Object object, String msg) { JsonData jsonData = new JsonData(true); jsonData.data = object; jsonData.msg = msg; return jsonData; } public static JsonData success(Object object) { JsonData jsonData = new JsonData(true); jsonData.data = object; return jsonData; } public static JsonData success() { return new JsonData(true); } public static JsonData fail(String msg) { JsonData jsonData = new JsonData(false); jsonData.msg = msg; return jsonData; } public Map<String, Object> toMap() { HashMap<String, Object> result = new HashMap<String, Object>(); result.put("ret", ret); result.put("msg", msg); result.put("data", data); return result; } }