一、老辦法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("操作失敗,請聯系管理員");}
}
因為比較簡單,我就不詳細解釋了