簡體   English   中英

Spring MVC中的嵌套異常處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM