前幾節(jié)小博老師給大家介紹了SpringMVC異常處理兩種方法,今天繼續(xù)介紹使用注解方式進行異常處理的方式@ExceptionHandler掺栅。@ExceptionHandler只有一個參數(shù)value烙肺,指定需要處理的異常類型。是一個數(shù)組類型氧卧。如:
@ExceptionHandler(value={NullPointerException.class,IllegalArgumentException.class})
如果只需要處理一種類型的異常桃笙,可以簡寫為:@ExceptionHandler(NullPointerException.class)。
當然沙绝,也可以不加參數(shù)搏明,攔截所有類型的異常。
需要注意的是闪檬,該注釋必須與出錯的方法寫在同一個controller里星著。下面是一個異常處理示例:
以上定義的Controller虚循,所有映射方法出錯,都將調(diào)用exp方法進行異常處理样傍。當然横缔,我們可以定義多個方法,并設(shè)定每個方法注解@ExceptionHandler的異常類型參數(shù)衫哥,這樣程序邏輯性會更加清晰茎刚。
使用@ExceptionHandler注解的一個優(yōu)點是捌斧,在需要返回json數(shù)據(jù)錯誤信息的時候特別有用。在@ExceptionHandler注解的方法上再加上@ResponseBody注解即可泉沾。