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编辑

相关文章
|
2月前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
95 1
|
2月前
|
Java API 调度
如何避免 Java 中的 TimeoutException 异常
在Java中,`TimeoutException`通常发生在执行操作超过预设时间时。要避免此异常,可以优化代码逻辑,减少不必要的等待;合理设置超时时间,确保其足够完成正常操作;使用异步处理或线程池管理任务,提高程序响应性。
140 12
|
2月前
|
Java
在 Java 中,如何自定义`NumberFormatException`异常
在Java中,自定义`NumberFormatException`异常可以通过继承`IllegalArgumentException`类并重写其构造方法来实现。自定义异常类可以添加额外的错误信息或行为,以便更精确地处理特定的数字格式转换错误。
52 1
|
13天前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
77 33
|
1天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
22 6
|
5天前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
23 5
|
5天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
19 2
|
5天前
|
监控 Java API
【潜意识Java】使用SpringBoot构建高效的RESTfulAPI
本文介绍了使用Spring Boot构建RESTful API的完整流程,涵盖从项目创建到API测试的各个步骤。
24 1
|
15天前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
51 13
|
19天前
|
Java Spring
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
72 15