Spring教程之异常捕获方式

 更新时间:2025年05月09日 08:40:28   作者:terrybg  
这篇文章主要介绍了Spring异常捕获方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

概述

在Spring中,封装了全局异常捕获方法,方便我们处理和管理异常,捕获异常可以解决以下业务场景:

  1. 友好返回给用户提示。
  2. 记录日志方便排查问题
  3. 方便管理异常等

以下程序模拟在Controller中出现异常:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 全局异常捕获测试
 * @author terry
 * @version 1.0
 * @date 2022/1/6 14:29
 */
@RestController
@RequestMapping("/gloab")
public class GloabExceptionController {

    @RequestMapping("/test1")
    public String test1(){
        // 模拟异常
        int i = 1/0;
        return "success";
    }
}

打印输出

{
    "timestamp": "2022-01-06T06:51:26.538+00:00",
    "status": 500,
    "error": "Internal Server Error",
    "message": "",
    "path": "/gloab/test1"
}

出现问题:

当发送异常之后,后续的代码都不执行了,而且返回的参数也不是我们需要的。

@RestControllerAdvice注解

@RestControllerAdvice和@ControllerAdvice都是全局捕获异常配置类,@RestControllerAdvice更适用于返回JSON数据,@ControllerAdvice返回JSON需要方法额外添加@ResponseBody。

@RestControllerAdvice
class GloabExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public String exceptionHandler(Exception e){
        System.out.println("ERROR: " + e.getMessage());
        return "error";
    }
}

打印输出

error

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Spring中的Environment外部化配置管理

    详解Spring中的Environment外部化配置管理

    本文主要介绍了Spring中的Environment外部化配置管理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Mybatis-Plus主键插入null值报错问题及解决

    Mybatis-Plus主键插入null值报错问题及解决

    这篇文章主要介绍了Mybatis-Plus主键插入null值报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 如何关闭 IDEA 自动更新

    如何关闭 IDEA 自动更新

    这篇文章主要介绍了如何关闭 IDEA 自动更新,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 如何在32位Windows系统下安装Java

    如何在32位Windows系统下安装Java

    这篇文章主要介绍了如何在32位Windows系统下安装Java,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • SpringBoot集成iTextPDF的实例

    SpringBoot集成iTextPDF的实例

    SpringBoot集成iTextPDF时,创建PDF文档涉及Document、PdfPTable和PdfPCell对象,设置文档大小和页边距,使用Paragraph设置段落样式,并通过Table和Cell控制表格样式和对齐,还可加入图片美化文档,这些步骤对于生成具有中文内容的PDF文件至关重要
    2024-09-09
  • Spring一步到位精通拦截器

    Spring一步到位精通拦截器

    拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。本文将详细讲讲SpringMVC中拦截器的概念及入门案例,感兴趣的可以尝试一下
    2023-01-01
  • Alibaba Nacos配置中心动态感知原理示例解析

    Alibaba Nacos配置中心动态感知原理示例解析

    这篇文章主要介绍了Alibaba Nacos配置中心动态感知原理示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Java数据类型超详细示例讲解

    Java数据类型超详细示例讲解

    Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。本文将通过示例详细说说Java中数据类型的转换,感兴趣的可以了解一下
    2022-11-11
  • Java注解详细介绍

    Java注解详细介绍

    这篇文章主要介绍了Java注解详细介绍,本文讲解了Java注解是什么、Java注解基础知识、Java注解类型、定义Java注解类型的注意事项等内容,需要的朋友可以参考下
    2014-09-09
  • SpringBoot如何整合Springsecurity实现数据库登录及权限控制

    SpringBoot如何整合Springsecurity实现数据库登录及权限控制

    这篇文章主要给大家介绍了关于SpringBoot如何整合Springsecurity实现数据库登录及权限控制的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01

最新评论