(办公)springboot配置全局异常
程序员文章站
2023-12-06 14:01:34
项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置。最近springboot用的还是蛮多的,我还是做事情,把经验发表一下.全局统一的异常,首先异常的返回值和正常返回的返回值应该统一json.返回值的code和msg可以用enum保存起来,cont ......
项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置。最近springboot用的还是蛮多的,我还是做事情,把经验发表一下.全局统一的异常,首先异常的返回值和正常返回的返回值应该统一json.返回值的code和msg可以用enum保存起来,controller层的方法抛出异常.下面看代码.
package com.imooc.shoptest001.handle; import com.imooc.shoptest001.utils.jsondata; import org.springframework.web.bind.annotation.controlleradvice; import org.springframework.web.bind.annotation.exceptionhandler; import org.springframework.web.bind.annotation.responsebody; /** * 全局异常捕获 */ @controlleradvice public class exceptionhandle { /** * exceptionhandler 捕获什么异常 * responsebody 返回json格式 * @return */ @exceptionhandler(value = exception.class) @responsebody public jsondata handle(exception ex){ ex.printstacktrace(); system.out.println(ex.tostring()); return jsondata.error500(ex.getmessage()); } }
package com.imooc.shoptest001.utils; public enum jsondataenum { error(-1,"失败"), success(0,"成功"), ; private integer code; private string msg; jsondataenum(integer code,string msg){ this.code = code; this.msg = msg; } public integer getcode() { return code; } public string getmsg() { return msg; } }
package com.imooc.shoptest001.utils; /** * 前台返回json类 */ public class jsondata<t> { /** * 返回状态 */ private boolean status; /** * 错误码/正确码 */ private integer code; /** * 消息. */ private string msg; /** * 具体的内容. */ private t data; public static jsondata success(string msg,object data){ jsondata jsondata = new jsondata(); jsondata.setmsg(msg); jsondata.setstatus(true); jsondata.setcode(200); jsondata.setdata(data); return jsondata; } public static jsondata ok(){ jsondata jsondata = new jsondata(); jsondata.setstatus(true); jsondata.setcode(200); return jsondata; } public static jsondata error(integer code,string msg){ jsondata jsondata = new jsondata(); jsondata.setstatus(false); jsondata.setcode(code); jsondata.setmsg(msg); return jsondata; } public static jsondata error500(string msg){ jsondata jsondata = new jsondata(); jsondata.setstatus(false); jsondata.setcode(500); jsondata.setmsg(msg); return jsondata; } public boolean isstatus() { return status; } public void setstatus(boolean status) { this.status = status; } public integer getcode() { return code; } public void setcode(integer code) { this.code = code; } public string getmsg() { return msg; } public void setmsg(string msg) { this.msg = msg; } public t getdata() { return data; } public void setdata(t data) { this.data = data; } }