Spring Boot异常处理静止trace

这篇文章主要介绍了Spring Boot异常处理静止trace,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

概述

在spring boot 2.2 中 默认状态为status 999

private void addStatus(Map<String, Object> errorAttributes, RequestAttributes requestAttributes) {
    Integer status = (Integer)this.getAttribute(requestAttributes, "javax.servlet.error.status_code");
    if (status == null) {
      errorAttributes.put("status", 999);
      errorAttributes.put("error", "None");
    } else {
      errorAttributes.put("status", status);

      try {
        errorAttributes.put("error", HttpStatus.valueOf(status).getReasonPhrase());
      } catch (Exception var5) {
        errorAttributes.put("error", "Http Status " + status);
      }

    }
  }

如果我们自定义异常信息, 默认会打印一串trace信息,但是我们不需要

解决办法:

@Component
public class AppErrorAttribute extends DefaultErrorAttributes {
  @Override
  public Map<String, Object> getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) {
    Map<String, Object> map = super.getErrorAttributes(webRequest, includeStackTrace); // 这里参数可以配置为false
    map.put("url","www.blogdgw.com");
    map.put("ext",webRequest.getAttribute("ext",0));
    // 禁止trace 覆盖
    //map.put("trace","");
    return map;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot 2 统一异常处理过程解析

    统一异常处理相关注解介绍 @ControllerAdvice 声明在类上用于指定该类为控制增强器类,如果想声明返回的结果为 RESTFull 风格的数据,需要在声明 @ExceptionHandler 注解的方法上同时加 上 @ResponseBody @RestControllerAdvice 声明在类上用于指定该类为控制增强器类.并声明返回的结果为 RESTFull 风格的数据,无需在声明@ExceptionHandler 注解的方法上加@ResponseBody @ExceptionHan

  • 详解SpringBoot 处理异常的几种常见姿势

    一.使用 @ControllerAdvice 和 @ExceptionHandler 处理全局异常 这是目前很常用的一种方式,非常推荐.测试代码中用到了 Junit 5,如果你新建项目验证下面的代码的话,记得添加上相关依赖. 1. 新建异常信息实体类 非必要的类,主要用于包装异常信息. src/main/java/com/twuc/webApp/exception/ErrorResponse.java /** * @author shuang.kou */ public class ErrorR

  • SpringBoot集成Beetl后统一处理页面异常的方法

    背景 SpringBoot集成Beetl后如果页面出现异常会将出现异常之前的页面输出到客户端,但是由于页面不完整会导致用户看到的页面错乱或者空白,如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 在控制台可以看到 >

  • SpringBoot如何优雅地处理全局异常详解

    前言 之前用springboot的时候,只知道捕获异常使用try{}catch,一个接口一个try{}catch,这也是大多数开发人员异常处理的常用方式,虽然屡试不爽,但会造成一个问题,就是一个Controller下面,满屏幕的try{}catch,看着一点都不优雅,一点都不符合小明的气质,憋了这么久,小明今天终于决定对所有异常实施统一处理的方案. 开发准备 JDK8.正常的springboot项目 代码编写 通用异常处理 其实Spring系列的项目全局异常处理方式早已存在,只不过我们一直忙于搬

  • Springboot之自定义全局异常处理的实现

    前言: 在实际的应用开发中,很多时候往往因为一些不可控的因素导致程序出现一些错误,这个时候就要及时把异常信息反馈给客户端,便于客户端能够及时地进行处理,而针对代码导致的异常,我们一般有两种处理方式,一种是throws直接抛出,一种是使用try..catch捕获,一般的话,如果逻辑的异常,需要知道异常信息,我们往往选择将异常抛出,如果只是要保证程序在出错的情况下 依然可以继续运行,则使用try..catch来捕获. 但是try..catch会导致代码量的增加,让后期我们的代码变得臃肿且难以维护.当

  • spring boot请求异常处理并返回对应的html页面

    通过之前的学习,我知道中间件可以预处理http请求并返回相应页面(比如出现404异常,可以返回一个自己编写的异常界面,而非默认使用的白板404页面,很难看).其实spring boot也提供了这样的功能. 404异常处理: @Controller public class ErrorHandler404 implements ErrorController { private static final String ERROR_PATH = "/error"; @RequestMapp

  • Spring Boot 数据校验@Valid+统一异常处理的实现

    1.先在你需要校验的实体类上面加上所需要的注解 为了测试,我自己就简单写了.@NotNull 和 @NotBlank 不能为空 @Entity @Table(name = "User") @Data public class User implements Serializable { @Id @NotNull(message = "id不能为空") @GeneratedValue(strategy = GenerationType.IDENTITY) privat

  • Spring Boot处理全局统一异常的两种方法与区别

    前言 在后端发生异常或者是请求出错时,前端通常显示如下 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Jun 07 15:38:07 CST 2019 There was an unexpected error (type=Not Found, status=404). No message available

  • Spring Boot异常处理静止trace

    这篇文章主要介绍了Spring Boot异常处理静止trace,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概述 在spring boot 2.2 中 默认状态为status 999 private void addStatus(Map<String, Object> errorAttributes, RequestAttributes requestAttributes) { Integer status = (Integer)this.

  • 浅谈Spring Boot 异常处理篇

    前言 先谈谈"异常处理"这件事.下面有 2 份伪代码,对比下: // ① 基于 if/else 判断 if(deletePage(page) == E_OK){ if(registry.deleteReference(page.name) == E_OK){ if(configKeys.deleteKey(page.name.makeKey()) == E_OK){ logger.log("page deleted"); }else{ logger.log(&quo

  • Spring Boot统一接口返回及全局异常处理

    目录 1.解决方案 2.具体实现 2.1 定义状态码统一接口 2.2 公共模块状态码枚举类 2.3 定义全局自定义异常 2.4 定义统一接口格式输出类 2.5 定义统一接口格式输出类 2.6 接口统一输出优化 2.7 子系统如何实现 3.子系统定义状态码,实现BaseResultCode接口 前言: 前段时间接手了一个老项目,现在需要在此项目中添加一些新的需求,同事在开发过程中遇到了一些问题? 1.成功的状态到底是200还是0啊,订单系统200代表成功,而会员系统却是0代表成功. 2.接口返回的

  • 如何优雅的处理Spring Boot异常信息详解

    Spring Boot 异常处理 异常处理是一种识别并响应错误的一致性机制,异常机制可以把程序中的异常处理代码和正常的业务逻辑代码分离,包装程序的可读性和健壮性.在Spring Boot应用程序中,能够捕获并及时的响应客户端的错误操作是一件非常重要的事情.在本章节中,我将展示如何处理Spring Boot中的异常. 1. 相关注解说明 在进行演示之前,我们先了解一下在Spring Boot应用程序中与异常处理相关的几个注解 注解名称 说明 @ControllerAdvice 该标签用于处理全局的

  • Spring Boot统一异常处理详解

    Spring Boot中默认带了error的映射,但是这个错误页面显示给用户并不是很友好. 统一异常处理 通过使用@ControllerAdvice定义统一异常处理的类,而不是在每个Controller中逐个定义. @ExceptionHandler用来定义函数针对的函数类型,最后将Exception对象和请求URL映射到URL中. @ControllerAdvice class ExceptionTranslator { public static final String DEFAULT_E

  • Spring Boot全局异常处理解析

    本文为大家分享了Spring Boot全局异常处理,供大家参考,具体内容如下 1.后台处理异常 a.引入thymeleaf依赖 <!-- thymeleaf模板插件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>

  • spring boot 默认异常处理的实现

    本周在看陈杰写的自定义异常的微信异常时,使用的是自定义异常状态码和信息,在出错时将他抛出,并用@ExceptionHandler注解定义一个全局异常处理器,根据异常的内容向前台发送状态码和信息,处理异常的代码如下图: //处理微信登录的异常 @ExceptionHandler(value = WechatLoginException.class) public String WechatLoginExceptionHandler(HttpServletRequest request, HttpS

  • spring boot 全局异常处理方法汇总

    这篇文章主要介绍了spring boot 全局异常处理方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import cn.sisyphe.framework.web.exception.DataException; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.co

  • Spring Boot统一异常处理最佳实践(拓展篇)

    前言 之前一篇文章介绍了基本的统一异常处理思路: Spring MVC/Boot 统一异常处理最佳实践. 上篇文章也有许多人提出了一些问题: 如何区分 Ajax 请求和普通页面请求, 以分别返回 JSON 错误信息和错误页面. 如何结合 HTTP 状态码进行统一异常处理. 今天这篇文章就主要来讲讲这些, 以及其他的一些拓展点. 区分请求方式 其实 Spring Boot 本身是内置了一个异常处理机制的, 会判断请求头的参数来区分要返回 JSON 数据还是错误页面. 源码为: org.spring

随机推荐