一、老办法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("操作失败,请联系管理员");
}
}
因为比较简单,我就不详细解释了