首页 > 其他分享 >springboot全局异常处理

springboot全局异常处理

时间:2022-11-03 18:04:34浏览次数:41  
标签:AjaxResult return springboot request param import 全局 异常 class

package com.casaba.provider.config;

import com.casaba.provider.domain.vo.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolationException;

/**
 * @author junHong
 * @date 2022/11/3
 */
@Slf4j
@RestControllerAdvice
public class CommonExceptionHandler {
    /**
     * 请求方式错误异常处理
     * @param e
     * @param request
     * @return
     */
    @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
    public AjaxResult<?> handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e, HttpServletRequest request){
        String requestURI = request.getRequestURI();
        log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod());
        return AjaxResult.fail(e.getMessage());
    }
    
    /**
     * 单个参数验证异常处理
     * @param e
     * @return
     */
    @ExceptionHandler(value = {ConstraintViolationException.class})
    public AjaxResult<?> exceptionHandler(ConstraintViolationException e){
        return AjaxResult.fail(e.getMessage());
    }

    /**
     * 参数验证异常处理
     * @param e
     * @return
     */
    @ExceptionHandler(value = {MethodArgumentNotValidException.class})
    public AjaxResult<?> exceptionHandler(MethodArgumentNotValidException e){
        return AjaxResult.fail(e.getBindingResult().getFieldError().getDefaultMessage());
    }

    /**
     * 系统未知异常
     * @param e
     * @param request
     * @return
     */
    @ExceptionHandler(RuntimeException.class)
    public AjaxResult<?> handleRuntimeException(RuntimeException e, HttpServletRequest request)
    {
        String requestURI = request.getRequestURI();
        log.error("请求地址'{}',发生未知异常.", requestURI, e);
        return AjaxResult.fail(e.getMessage());
    }

    /**
     * 系统异常
     * @param e
     * @param request
     * @return
     */
    @ExceptionHandler(Exception.class)
    public AjaxResult<?> handleException(Exception e, HttpServletRequest request)
    {
        String requestURI = request.getRequestURI();
        log.error("请求地址'{}',发生系统异常.", requestURI, e);
        return AjaxResult.fail(e.getMessage());
    }
}

 

标签:AjaxResult,return,springboot,request,param,import,全局,异常,class
From: https://www.cnblogs.com/junnnnnnnn/p/16855334.html

相关文章

  • 异常机制
    1.什么是异常(Exception)指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等分类:检查性异常最具代表性的检查性异常是用户错误或问题引起的......
  • springboot web 自定义参数验证
    当需要前端必传某些参数的时候,可在代码里面校验,但是这样每一个方法都需要自己写代码验证。我们可以使用spring提供的@Validate1、单一参数验证接口是单一参数写在方......
  • springboot整合项目-拦截器HandlerInterceptor
    拦截器在SpringMVC中拦截请求是通过处理器拦截器HandlerInterceptor来实现的,它拦截的目标是请求的地址。在SpringMVC中定义一个拦截器,需要实现HandlerInterceptor接口。......
  • springboot中使用职责链模式(转)
    转:https://www.51cto.com/article/720107.html一、什么是责任链模式?责任链模式(ChainofResponsibilityPattern),顾名思义,为请求者和接受者之间创建一条对象处理链路,避免......
  • SpringBoot配置swagger
    1、引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><......
  • SpringBoot日志乱码问题
    其中一种原因:java源码文件中有GBK、UTF-8两种不同的编码,导致IDEA在编译文件时使用GBK编码编译,这样源码UTF-8中写入的中文字符就会编码错误,变为乱码。IDEA提示如下时需要......
  • wxjava 多商户 微信支付在springBoot项目中使用以及血泪教训
    最近在做自助洗车项目中,因每个门店需要使用自己的商户收款,所以需要wxjava多商户支持,在百度查了些资料,基本都是单个商户的使用案例,遂把项目中的一些总结分享。先介绍下单......
  • Python实验报告——第9章 异常处理及程序调试
    实验报告实例01:模拟幼儿园分苹果代码如下:defdivision():'''功能:分苹果'''print('\n===============分苹果了===============\n')apple=int(input(......
  • Python实验报告(异常处理及程序设计)
    1.模拟幼儿园分苹果  结果:   2.模拟幼儿园分苹果(除数不能为零)  结果: 3.模拟幼儿园分苹果(每个人至少分到一个苹果)  结果:   4.模拟幼儿园......
  • springboot 线程池的使用
    线程池可以用于解决单线程干某件事情比较慢的问题AsyncConfigurer:通过实现AsyncConfigurer自定义线程池,包含异常处理实现AsyncConfigurer接口对异常线程池更加细粒度的控制......