SpringBoot统一错误处理

1.处理错误请求页面

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.autoconfigure.web.ErrorController;
/** * @author SimonHu * @Description: * @Created on 2018/7/11 10:46 */ @Controller @RequestMapping(value = "error") public class BaseErrorController implements ErrorController { @Value("${siteConfig.html_base_path}") private String html_base_path; private static final Logger logger = LoggerFactory.getLogger(BaseErrorController.class); @Override public String getErrorPath() { logger.error("出错啦2!进入自定义错误控制器");          //默认返回错误页面,自定义;
        return "process/process";
    }

    @RequestMapping
    public String error(HttpServletResponse response) throws IOException {
        return getErrorPath(response);
    }
    public String getErrorPath(HttpServletResponse response) throws IOException {
        logger.error("出错啦1!进入自定义错误控制器");        //重定向到新的页面,请求url
        response.sendRedirect(html_base_path+"design/showMyWorks");
        return "";
    }
}

2.全局错误处理

import com.zhx.commonentity.CommonResult;
import com.zhx.constants.CodeMsgEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * @author SimonHu
 * @Description:
 * @Created on 2018/6/25 10:15
 */
@ControllerAdvice
public class GlobalDefultExceptionHandler {
    private static final Logger logger = LoggerFactory.getLogger(GlobalDefultExceptionHandler.class);
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public CommonResult defultExcepitonHandler(HttpServletRequest request, Exception e) {
        logger.error("错误信息:",e);
        return CommonResult.result(CodeMsgEnum.SYS_ERROR.getCode(),CodeMsgEnum.SYS_ERROR.getMsg());
    }
}

借鉴:https://blog.csdn.net/zhaozhirongfree1111/article/details/72526885

原文地址:https://www.cnblogs.com/SimonHu1993/p/9293451.html

时间: 2024-08-03 07:28:32

SpringBoot统一错误处理的相关文章

使用重写的$.ajax()统一错误处理

在jquery开发中,我们经常会用到类似如下的代码: $.ajax({ url : '...', type : 'POST', data : {}, success : function(data){ //执行状态是200时候调用 }, error : function(XMLHttpRequest, msg, e){ //执行状态是非200时调用 }, complete : function(httpRequest, status){ //完成了一次请求时调用 } }); 其实往往除了url,

spring 或 springboot统一异常处理

spring 或 springboot统一异常处理https://blog.csdn.net/xzmeasy/article/details/76150370 一,本文介绍spring MVC的自定义异常处理,即在Controller中抛出自定义的异常时,客户端收到更友好的JSON格式的提示.而不是常见的报错页面. 二,场景描述:实现公用API,验证API key的逻辑,放在拦截器中判断(等同于在Controller中)并抛出异常,用户收到类似下图的提示: 其中,Http状态Code也能自由控制

springboot自定义错误页面

springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return (container -> { ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html"); ErrorPage error404Page = new ErrorPage(Http

springboot统一返回json数据格式并配置系统异常拦截

本文链接:https://blog.csdn.net/syystx/article/details/82870217通常进行前后端分离开发时我们需要定义统一的json数据交互格式并对系统未处理异常进行处理.以下具体介绍在springboot中的实现过程,通过该章节代码可实现框架统一异常处理,并当后台接口反馈类型不为统一格式时能够进行重新包装成统一格式进行返回. 具体实现如下: 1.定义统一返回格式 public class RtnMsg{ private String rtnCode; priv

springboot统一异常处理

快看小说网 我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容.我怎么这么有钱 选择一个之前实现过的Web应用(Chapter3-1-2)为基础,启动该应用,访问一个不存在的URL,或是修改处理内容,直接抛出异常,如:   1 2 3 4   @RequestMapping("/hello") public String he

Java SpringBoot全局错误处理类,返回标准结果

package demo.utils; import com.alibaba.fastjson.JSON; import demo.controller.ProductController; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.web.bind.annotation.ExceptionHandler; impor

SpringBoot定制错误的Json数据

(1)自定义异常处理&返回定制Json数据 1 @ControllerAdvice 2 public class MyExceptionHandler { 3 @ResponseBody 4 @ExceptionHandler(UserNotExistException.class) 5 public Map<String,Object> handleException(Exception e){ 6 Map<String,Object> map = new HashMap

Springboot统一异常处理并保存到数据库

/** * 所有异常报错 * @param * @return * @throws Exception */ @ExceptionHandler(value = Exception.class) @ResponseBody public Result allExceptionHandler(HttpServletRequest request, Exception ex) { String path = request.getServletPath(); ErrorLogsUtil.error(

spring统一错误响应设置

在类入口增加 @RestControllerAdvice注解.可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@RequestMapping.@PostMapping, @GetMapping注解中. @RestControllerAdvice@Slf4jpublic class BizExceptionHandler { /** * 参数校验异常处理 */ @ResponseStatus(HttpStatus.OK) @Exc