spring異常處理

2021-08-29 02:12:30 字數 1276 閱讀 7230

spring提供了多種方式將異常轉化為響應

1.內建的將以異常轉換為http碼就不說了,由spring自身丟擲,然後產生對應的http狀態碼響應。

2.下例子用@responsestatus註解將myexception異常對映為http狀態碼404。

"沒有找到"

)public

class

myexception

extends

runtimeexception

3.對於新增了@exceptionhandler註解的處理器方法,當前controller中的其他處理器方法丟擲其對映的異常的時候,將會委託該方法來處理。

@exceptionhandler註解所標註的方法能夠處理當前controller類中所有處理器方法的異常。

有沒有一種方法能夠處理所有controller中處理器方法所丟擲的異常呢?

答案是:有的。

建立控制器基類,所有控制器類要擴充套件這個類,從而繼承通用的@exceptionhandler方法?

spring 引入了乙個新的解決方案:控制器通知,很顯然是aop原理。

控制器通知controlleradvice)是任意帶有@controlleradvice註解的類,這個類會包含乙個或多個如下型別的方法:

@controlleradvice註解本身已經使用了@component註解,所以它是乙個spring 元件。

//@controlleradvice註解原始碼

@target()

@retention

(retentionpolicy.runtime)

@documented

@component

public @inte***ce

controlleradvice{.

..

**總結:**建立控制器通知類(@controlleradvice註解),在類中使用@exceptionhandle註解定義通用異常處理方法。

Spring 異常處理

今天在做專案的時候突然發現異常處理還有所欠缺,所有打算好好的加強一下異常的處理,順便好好鞏固以前學習的知識和增加新的知識。實現spring介面 handlerexceptionresolver public class exceptionresolver implements handlerexce...

Spring 處理異常

目錄 1.簡介 2.spring自身異常自動對映為指定http狀態碼 3.使用 responsestatus將自定義異常對映為指定http狀態碼 4.基於控制器處理異常 exceptionhandler 5.全域性異常處理 controlleradvice 推薦 參考 spring mvc異常統一處...

Spring 全域性異常處理

1 描述 在j2ee專案的開發中,不管是對底層的資料庫操作過程,還是業務層的處理過程,還是控制層的處理過程,都不可避免會遇到各種可預知的 不可預知的異常需要處理。每個過程都單獨處理異常,系統的 耦合度高,工作量大且不好統一,維護的工作量也很大。那麼,能不能將所有型別的異常處理從各處理過程解耦出來,這...