千家信息网

springBoot中怎么自定义异常响应

发表于:2024-10-28 作者:千家信息网编辑
千家信息网最后更新 2024年10月28日,这篇文章将为大家详细讲解有关springBoot中怎么自定义异常响应,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 自定义异常返回json数据、//
千家信息网最后更新 2024年10月28日springBoot中怎么自定义异常响应

这篇文章将为大家详细讲解有关springBoot中怎么自定义异常响应,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1 自定义异常返回json数据、

//不要忘记添加 @ControllerAdvice

@ControllerAdvice

public class myExceptionHandler {

//浏览器和客户端返回的都是json// @ResponseBody

@ExceptionHandler(UserNotExist.class)

public Map handlerException(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 Map getErrorAttributes(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 getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) {

    Map errorAttributes = 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安全错误 数据库的锁怎样保障安全 关于网络安全的队会ppt 广东推广软件开发 高校中央数据库 数据库常见备份方式有哪些 饥荒联机服务器电脑配置 公司软件开发怎么入账 网络安全教程视频调色 育碧服务器登陆错误 福建信息软件开发产品介绍 软件开发生产性指标 网络安全讲话精神法律法规 软件开发主要的方向 网络技术认证培训方案 软件开发项目管理工具有哪些 网络安全用英语怎么读 德惠有名的网络技术咨询口碑推荐 最新的网络安全保密协议范本 关于网络安全的说法正确的 倩女幽魂万古长春服务器开服时间 软件开发用什么编程语言好 网络安全与个人隐私演讲稿 社交软件开发的难点 青岛大学网络安全专硕内容 网络安全湖南股 宝山区品牌网络技术服务创造辉煌 如何对软件开发质量进行考核 三级数据库技术移民 如何去保障网络安全 苏州戴尔服务器资源存储 软件开发过程流程图UML
0