springBoot中怎么自定义异常响应
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关springBoot中怎么自定义异常响应,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 自定义异常返回json数据、//
千家信息网最后更新 2025年12月02日springBoot中怎么自定义异常响应
这篇文章将为大家详细讲解有关springBoot中怎么自定义异常响应,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1 自定义异常返回json数据、
//不要忘记添加 @ControllerAdvice
@ControllerAdvice
public class myExceptionHandler {
//浏览器和客户端返回的都是json// @ResponseBody
@ExceptionHandler(UserNotExist.class)
public MaphandlerException(Exception e){ Map map = new HashMap<>(); map.put("code","user.notexist"); map.put("message",e.getMessage()); return map;
} }
2 转发到/error下,进行自适应响应 @ControllerAdvice public class myExceptionHandler {
//浏览器和客户端返回的都是json@ExceptionHandler(UserNotExist.class)public String handlerException(Exception e, HttpServletRequest request){ Map map = new HashMap<>(); request.setAttribute("javax.servlet.error.status_code",500); map.put("code","user.notexist"); map.put("message",e.getMessage()); request.setAttribute("ext",map); return "forward:/error"; } }
3 将定制的错误携带出去 @Component
public class myErrorAtrributes extends DefaultErrorAttributes {
//WebRequest webRequest,注意1.x.x版本的写法与2.1.0写法不同,我的是2.1.0public MapgetErrorAttributes(WebRequest webRequest, boolean includeStackTrace) { Map errorAttributes = super.getErrorAttributes(webRequest,includeStackTrace); errorAttributes.put("com", "maodong"); Map ext= (Map ) webRequest.getAttribute("ext",0); errorAttributes.put("ext",ext); return errorAttributes; }
}
//为啥这么写:父类DefaultErrorAttributes类中的方法
public Map
MaperrorAttributes = new LinkedHashMap(); errorAttributes.put("timestamp", new Date()); this.addStatus(errorAttributes, webRequest); this.addErrorDetails(errorAttributes, webRequest, includeStackTrace); this.addPath(errorAttributes, webRequest); return errorAttributes;}//为啥WebRequest webRequest能得到与低版本RequestAttrributes相同的结果public interface WebRequest extends RequestAttributes {@NullableString getHeader(String var1);@NullableString[] getHeaderValues(String var1);Iterator getHeaderNames();------}//为啥 Map ext= (Map ) webRequest.getAttribute("ext",0);能获得extpublic interface RequestAttributes {int SCOPE_REQUEST = 0;int SCOPE_SESSION = 1;String REFERENCE_REQUEST = "request";String REFERENCE_SESSION = "session";@NullableObject getAttribute(String var1, int var2);void setAttribute(String var1, Object var2, int var3);void removeAttribute(String var1, int var2);
关于springBoot中怎么自定义异常响应就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
内容
写法
客户
客户端
文章
更多
浏览器
版本
知识
篇文章
浏览
不同
不错
相同
数据
方法
结果
质量
错误
参考
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有什么好的数据库教程
全国各地地址的数据库
超级群英传服务器
软件开发构架图
廊坊数据库应用培训机构
服务器返回代码403
qt开启服务器时间太长
阿里云服务器机器码怎么获取
网络技术岗做什么工作
在商品销售系统数据库中查询数据
高一网络安全班会活动纪实
互联网网络安全法案例
我的世界服务器建筑高度限制修改
软件使用许可费和软件开发费
有什么可以学会网络技术
python操作数据库好不好
网络安全委员会 华为
微信支付数据库能保存多长时间
国服手游云顶之弈哪个服务器好
软件开发经理验收管理
华为服务器供应问题
网络技术与信息工程一样不
天津服务器防火墙
魔兽世界单刷副本服务器
嘉定区本地网络技术网上价格
数据库表转化文档
网络安全公司需要备案吗
新年主题软件开发
怎样普及网络安全知识
使用国外服务器安全吗