JAVA springboot 添加全局异常的处理

简介: JAVA springboot 添加全局异常的处理

 目录

前言

技术方案

具体代码

使用异常代码

运行结果


前言

最近搭建java项目需要进行全局异常的捕获,用于在没有进行异常处理的时候,进行异常报警的处理。

技术方案

使用shiro框架的全局异常处理,前置请求处理adviceRequest;

具体代码

/** *

* 全局异常处理器

*

* @author like.ma

*/

@RestControllerAdvice

public class GlobalExceptionHandler

{


   /**

    * 请求方式不支持

    */

   @ExceptionHandler({ HttpRequestMethodNotSupportedException.class })

   public AjaxResult handleException(HttpRequestMethodNotSupportedException e)

   {

       System.out.println("不支持' " + e.getMethod() + "'请求");

       LogUtil.WriteErrorLog(null,"不支持' " + e.getMethod() + "'请求");

       return AjaxResult.error("不支持' " + e.getMethod() + "'请求");

   }


   /**

    * 拦截未知的运行时异常

    */

   @ExceptionHandler(RuntimeException.class)

   public AjaxResult notFount(RuntimeException e)

   {

       System.out.println("运行时异常:" + e);

       LogUtil.WriteErrorLog(e,"运行时异常:" + e.getMessage());

       return AjaxResult.error("运行时异常:" + e.getMessage());

   }


   /**

    * 系统异常

    */

   @ExceptionHandler(Exception.class)

   public AjaxResult handleException(Exception e)

   {

       System.out.println("服务器错误,请联系管理员");

       LogUtil.WriteErrorLog(e,"服务器错误,请联系管理员");

       return AjaxResult.error("服务器错误,请联系管理员");

   }



   /**

    * 自定义验证异常

    */

   @ExceptionHandler(BindException.class)

   public AjaxResult validatedBindException(BindException e)

   {

       String message = e.getAllErrors().get(0).getDefaultMessage();

       return AjaxResult.error(message);

   }

}

使用异常代码

@ApiOperation("hello 健康检查")

@GetMapping("/hello")

public String getHello(){

   String a = null;

   System.out.println(a.length());

   return  "1";

}

运行结果

image.gif编辑

相关文章
|
Java API 调度
[Java Framework] SpringBoot几种启动后自动初始化的几种方式
业务需求需要在项目启动之后自动把执行一次方法 (数据初始化或者创建一些调度任务),但是有时候可能不太明确他们的执行顺序,本文就带你梳理一下它们的执行顺序
382 0
[Java Framework] SpringBoot几种启动后自动初始化的几种方式
|
JSON Java fastjson
使用spring boot开发时java对象和Json对象转换
使用spring boot开发时java对象和Json对象转换
1670 1
使用spring boot开发时java对象和Json对象转换
|
设计模式 前端开发 JavaScript
基于java springboot+mybaits-plus+vue云旅游网站设计与实现
最近开发了一个基于springboot+mybaits-plus+vue的云旅游项目,项目非常的nice。具体的介绍看下面吧。
375 0
基于java springboot+mybaits-plus+vue云旅游网站设计与实现
|
存储 安全 前端开发
手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文2)
手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文)
手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文2)
|
存储 前端开发 安全
手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文1)
手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文)
手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文1)
|
Java Spring
SpringBoot详细打印启动时异常堆栈信息
`SpringBoot`在项目启动时如果遇到异常并不能友好的打印出具体的`堆栈错误信息`,我们只能查看到简单的错误消息,以致于并不能及时解决发生的问题,针对这个问题`SpringBoot`提供了故障分析仪的概念(failure-analyzer),内部根据不同类型的异常提供了一些实现,我们如果想自定义该怎么去做?
|
Java
【Java】【SpringBoot】CP03:热部署
【Java】【SpringBoot】CP03:热部署
156 0
【Java】【SpringBoot】CP03:热部署
|
Java 测试技术 开发者
【Java】【SpringBoot】CP02:单元测试
【Java】【SpringBoot】CP02:单元测试
144 0
【Java】【SpringBoot】CP02:单元测试
|
Java Spring
【Java】【Spring Boot】CP01:创建一个SpringBoot项目(Spring Initializr)
【Java】【Spring Boot】CP01:创建一个SpringBoot项目(Spring Initializr)
278 0
【Java】【Spring Boot】CP01:创建一个SpringBoot项目(Spring Initializr)
|
XML 监控 前端开发
Java面试准备-SpringBoot
Java面试准备-SpringBoot
106 0
下一篇
无影云桌面