[英]Nested Exception handling in Spring MVC
我收到以下錯誤:
org.springframework.web.util.NestedServletException:請求處理失敗; 嵌套異常是java.lang.NullPointerException
為了在控制器中處理這個問題,我使用了以下代碼:
@ExceptionHandler(NestedServletException.class)
public ModelAndView handleServletErrors(){
System.out.println("Servlet Exception is thrown");
ModelAndView mv = new ModelAndView("error");
mv.addObject("error", "Error encountered while processing reqeust.");
return mv;
}
但是這並沒有處理上面拋出的異常。 如果我使用NullPointerException
類而不是NestedServletException
,它可以工作。 由於Spring在響應NullPointerException
拋出異常,不應該由上面的代碼處理嗎?
引用@ExceptionHandler
的文檔:
用於處理特定處理程序類和/或處理程序方法中的異常的注釋。
此注釋將允許方法處理由處理程序方法引發的異常,即使用@RequestMapping
注釋的方法。 引用Spring引用 :
您可以使用
@ExceptionHandler
方法執行此@ExceptionHandler
。 在控制器中聲明時,此類方法適用於該控制器(或其任何子類)的@RequestMapping
方法引發的異常。 您還可以在@ControllerAdvice
類中聲明@ExceptionHandler
方法,在這種情況下,它會處理來自許多控制器的@RequestMapping
方法的異常。
由於處理程序拋出的異常是NullPointerException
,因此異常處理程序方法將處理該特定異常。 它不會處理Spring用來封裝servlet異常的泛型NestedServletException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.