欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring異常實現(xiàn)統(tǒng)一處理的方法

 更新時間:2022年12月08日 14:35:17   作者:居然天上樓  
這篇文章主要介紹了Spring異常實現(xiàn)統(tǒng)一處理的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧

1.統(tǒng)一處理異常的機制

Spring MVC框架提供了統(tǒng)一處理異常的機制!表現(xiàn)為每種類型的異常只需要寫一段(寫一次)處理此異常的代碼即可,項目中無論處理哪種請求時,只要出現(xiàn)這種異常,都會自動執(zhí)行這段代碼!

提示:當項目中添加了spring-boot-starter-web依賴項,此依賴項中的核心就是Spring MVC框架的依賴項。

在實現(xiàn)統(tǒng)一處理異常之前,需要先使得控制器中處理請求的方法不再處理異常!則處理請求的方法表現(xiàn)為拋出異常(但并不需要從代碼中顯式的表現(xiàn)出來)!

2.關于統(tǒng)一處理異常的方法

訪問權限:應該使用public

返回值類型:參考處理請求的方法方法

名稱:自定義

參數列表:至少有1個異常類型的參數,表示被處理的異常,另外,可以按需添加;HttpServletRequest、HttpServletResponse等少量特定類型的參數,不可以隨意添加其它;參數,例如不可以添加HttpSession等,如果有多個參數,各參數可以不區(qū)分先后順序;

注解:必須添加@ExceptionHandler,表示此方法是處理異常的方法。

@ExceptionHandler
public String handleServiceException(ServiceException e) {
    return e.getMessage();
}

3.關于處理異常的方法的執(zhí)行特點

允許同時存在多個處理異常的方法,只要這些方法處理的異常不完全相同即可;

多個處理異常的方法,其處理的異常類型允許存在繼承關系;

  • 例如某方法處理NullPointerException,另一個方法處理RuntimeException,是正確的;
  • 當出現(xiàn)子級異常時,將執(zhí)行處理子級異常的方法;

如果將處理異常的方法定義在控制器類中,則這些方法只能作用于當前控制器類中處理的請求;

可以自定義類,在類上添加@RestControllerAdvice注解,將處理異常的方法聲明在這個類中,可以作用于當前項目中所有處理請求時方法。

則在項目的根包下創(chuàng)建ex.handler.GlobalExceptionHandler類,在類上添中@RestControllerAdvice注解,并在此類中處理異常(在任何控制器類中都不再處理異常):

package cn.tedu.csmall.product.ex.handler;
import cn.tedu.csmall.product.ex.ServiceException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler
    public String handleServiceException(ServiceException e) {
        return e.getMessage();
    }
    @ExceptionHandler
    public String handleNullPointerException(NullPointerException e) {
        return "程序出現(xiàn)了空指針異常,已經被處理!";
    }
    @ExceptionHandler
    public String handleRuntimeException(RuntimeException e) {
        return "程序出現(xiàn)了RuntimeException,已經被處理!";
    }
}

User login(String username, String password) throws 用戶名不存在異常, 密碼錯誤異常, 賬號非法狀態(tài)異常……
// boolean:表示登錄成功,或登錄失敗
//             但是,無法表示哪種失敗
// int:使用某個數據表示某種狀態(tài),例如1表示登錄成功,2表示用戶名錯,3表示密碼錯,4表示封號,等等
//            但是,無法返回登錄成功的結果

try {
    User user = service.login("root", "1234");
    // 將User對象保存到Session中
} catch (用戶名不存在異常 e) {
} catch (密碼錯誤異常 e) {
} catch (賬號非法狀態(tài)異常 e) {
}

到此這篇關于Spring異常實現(xiàn)統(tǒng)一處理的方法的文章就介紹到這了,更多相關Spring異常處理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中字符串和byte數組之間的簡單轉換方法

    Java中字符串和byte數組之間的簡單轉換方法

    這篇文章主要給大家介紹了關于Java中字符串和byte數組之間的簡單轉換方法,Java中將String類型轉換為byte[]類型,可以使用String的getBytes()方法,還有很多其他的辦法,需要的朋友可以參考下
    2023-08-08
  • java版十大排序經典算法:完整代碼(2)

    java版十大排序經典算法:完整代碼(2)

    優(yōu)秀的文章也不少,但是Java完整版的好像不多,我把所有的寫一遍鞏固下,同時也真誠的希望閱讀到這篇文章的小伙伴們可以自己去從頭敲一遍,不要粘貼復制!希望我的文章對你有所幫助,每天進步一點點
    2021-07-07
  • spring依賴注入知識點分享

    spring依賴注入知識點分享

    在本篇文章里小編給大家整理的是關于spring依賴注入知識點以及相關代碼內容,需要的朋友們學習下。
    2019-11-11
  • Java設計模式之責任鏈模式

    Java設計模式之責任鏈模式

    今天小編就為大家分享一篇關于Java設計模式之責任鏈模式,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • SpringMVC中的HttpServletRequestWrapper使用解析

    SpringMVC中的HttpServletRequestWrapper使用解析

    這篇文章主要介紹了SpringMVC中的HttpServletRequestWrapper使用解析,HttpServletRequestWrapper 采用裝飾者模式對HttpServletRequest進行包裝,我們可以通過繼承HttpServletRequestWrapper類去重寫getParameterValues,getParameter等方法,需要的朋友可以參考下
    2024-01-01
  • springboot默認的5種加載路徑詳解

    springboot默認的5種加載路徑詳解

    這篇文章主要給大家介紹了關于springboot默認的5種加載路徑,文中通過示例代碼介紹的非常詳細,對大家學習或者使用springboot具有一定的參考學習價值,需要的朋友可以參考下
    2022-05-05
  • Java之SpringBoot-Thymeleaf詳情

    Java之SpringBoot-Thymeleaf詳情

    聊Thymeleaf,需要知道為什么到了SpringBoot中就不用JSP了?這跟SpringBoot打包方式有點關系,SpringBoot項目打包是jar包,下面文章小編就對此做一個詳細介紹,需要的朋友可以參考一下
    2021-09-09
  • 理解Java多線程之并發(fā)編程

    理解Java多線程之并發(fā)編程

    這篇文章主要介紹了理解Java多線程之并發(fā)編程的相關資料,需要的朋友可以參考下
    2023-02-02
  • 詳談ThreadLocal-單例模式下高并發(fā)線程安全

    詳談ThreadLocal-單例模式下高并發(fā)線程安全

    這篇文章主要介紹了ThreadLocal-單例模式下高并發(fā)線程安全,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java與WebUploader相結合實現(xiàn)文件上傳功能(實例代碼)

    Java與WebUploader相結合實現(xiàn)文件上傳功能(實例代碼)

    這篇文章主要介紹了Java結合WebUploader實現(xiàn)文件上傳功能,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03

最新評論