后端——全局异常处理

07-14 1535阅读

一、老办法try-catch

当我们执行一些错误操作导致程序报错时,程序会捕捉到异常报错,这个异常会存在一个Exception对象里

那我们在spring boot工程开发时,当我们执行一个sql查询时报错了,那就会从最底层的Mapper层捕捉到Exception异常,然后一路往Service、Controller传出去

后端——全局异常处理

那么学过java的应该知道,怎么才能捕捉到这个Exception异常并显示?就得用【try-catch】

后端——全局异常处理

那不是说你在mapper层写了一个【try-catch】、或者只在Controller写了【try-catch】就能返回出去Excrption异常对象的,肯定全都要写【try-catch】才能一路传上去,这太麻烦了

二、新办法:全局捕获异常

那我们可以设置一个【全局异常处理器】,来检测到所有异常,然后根据指定的要显示的异常类型来全局显示异常

后端——全局异常处理

写法很简单:

后端——全局异常处理

用法:

就是多加一个【exception】包,专门放捕获异常的类,然后创建一个捕获异常的类

后端——全局异常处理

代码:

package com.czm.tliaswebmanagement.exception;
import com.czm.tliaswebmanagement.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
 * 全局异常处理器
 */
@RestControllerAdvice //标记这是一个全局异常捕获类
public class GlobalExceptionHandler {
    
    //指定不获的是什么异常类型,Exception.class就是全局异常类型
    @ExceptionHandler(Exception.class)
    public Result ex(Exception ex){
        ex.printStackTrace();
        return Result.error("操作失败,请联系管理员");
    }
}

后端——全局异常处理

因为比较简单,我就不详细解释了

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]