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