文章目錄
- 12異常處理器
- 12.1基于配置的異常處理
- HandlerExceptionResolver接口
- 直接在springmvc中聲明使用
- 12.2基于注解的異常處理
- 需要書寫異常的配置類
12異常處理器
12.1基于配置的異常處理
HandlerExceptionResolver接口
接口實現類:
DefaultHandlerExceptionResolver和 SimpleMappingExceptionResolver
SpringMVC提供了自定義的異常處理器SimpleMappingExceptionResolver
使用方法:
直接在springmvc中聲明使用
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><!--key: 異常的類型value: 映射到視圖的名稱--><prop key="java.lang.ArithmeticException">error</prop><prop key="java.lang.NullPointerException">error</prop><prop key="java.lang.RuntimeException">error</prop><prop key="java.lang.Exception">error</prop></props></property><property name="exceptionAttribute" value="ex"/>
</bean>
當程序運行時出現上面所聲明的異常類型時,就會執行那個異常所對應的視圖頁面,如java.lang.ArithmeticException就會跳轉到error頁面
12.2基于注解的異常處理
需要書寫異常的配置類
/*** @ControllerAdvice 1.全局異常處理*/
@ControllerAdvice
public class ExceptionController {@ExceptionHandler(ArithmeticException.class)public String handleException(Throwable ex, Model model) {// ex表示控制器所出現的異常model.addAttribute("ex", ex);return "error";}
}
ex);
return “error”;
}
}
**上面的類上使用了@ControllerAdvice注解,該注解是聲明處理全局異常的,同時對于單個方法上使用了@ExceptionHandler注解,是用來聲明具體的異常類型,然后用下面的方法來處理該異常。**