@ExceptionHandler
攔截 Spring 的異常處理需要使用到 ExceptionHandler 註解。Spring 3.0 引入的這個註解可以讓我們在一個 handler 方法或者類中統一處理 Controller 拋出的異常,使得寫出的代碼更加清晰。
首先,來看看對這個註解的解釋:
@Target(ElementType.METHOD) // 這個註解標註在對象的方法上
@Retention(RetentionPolicy.RUNTIME) // 在運行時有效
@Documented
public @interface ExceptionHandler {
/**
* Exceptions handled by the annotated method. If empty, will default to any
* exceptions listed in the method argument list.
* value 是一個 Class 數組,用於指定需要攔截的異常類。
*/
Class<? extends Throwable>[] value() default {};
}
說明:該註解註釋的方法可以有靈活的輸入參數,通常需要給出異常參數:包括一般的異常或特定的異常(即自定義異常),如果註解自身沒有指定異常類,會默認進行映射。