• SpringBoot全局异常处理


      任何项目发生异常是不可避免的,使用全局异常捕获发生的异常是十分必要的。SpringBoot框架对全局异常捕获提供了很好的支持,并且操作非常简单。我们只需要创建一个类和一个方法,并添加两个注解:@ControllerAdvice和@ExceptionHandler即可,如:

    复制代码
     1 package com.sqy.start.controller;
     2 
     3 import org.springframework.web.bind.annotation.ControllerAdvice;
     4 import org.springframework.web.bind.annotation.ExceptionHandler;
     5 import org.springframework.web.bind.annotation.ResponseBody;
     6 
     7 @ControllerAdvice//还可以指定具体的捕获包
     8 public class GlobalExceptionHandler {
     9     @ExceptionHandler(RuntimeException.class) //捕获所有运行时异常
    10     @ResponseBody
    11     public String exceptionHandler(){
    12         return "error";
    13     }
    14 }
    复制代码

    测试:

    在controller层添加代码,如:

    1         @RequestMapping("/parseInt")
    2     @ResponseBody
    3     public int parseInt(String num) {
    4         int a = Integer.parseInt(num);
    5         return a;
    6     }    

    运行效果:

      其中,@ControllerAdvice:该注解是spring2.3以后新增的一个注解,主要是用来Controller的一些公共的需求的低侵入性增强提供辅助,作用于@RequestMapping标注的方法上。@ExceptionHandler:该注解是配@ControllerAdvice一起使用的注解,自定义错误处理器,可自己组装json字符串,并返回到页面。
      注意:如果想实现,不同的异常有不同的操作的话,只需要将 @ExceptionHandler的value的值不一样就可以了,可以同时实现多个不同的异常处理,但不能出现包含状态。
      由此可见,全局异常捕获的原理是:  使用AOP技术,采用异常通知的方式处理。

      AOP面向切面:无侵入,删除代码也对其他代码没有影响。

  • 相关阅读:
    Comet OJ 夏季欢乐赛 篮球校赛
    USACO Tractor
    Comet OJ 夏季欢乐赛 Gree的心房
    USACO Hide and Seek
    Comet OJ 夏季欢乐赛 分配学号
    php如何上传txt文件,并且读取txt文件
    插入多行数据的时候,一个insert插入多行
    连接优化查询,按条件查询的时候,如何优化查询的时间
    如何将txt的多行记录直接导入到mysql数据库
    如何在自己的网页上插入一个超链接,发起临时qq会话
  • 原文地址:https://www.cnblogs.com/sqyss/p/10032867.html
Copyright © 2020-2023  润新知