国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Spring MVC 使用@ExceptionHandler注解

2018-07-26 14:33 更新

HandlerExceptionResolver接口以及SimpleMappingExceptionResolver解析器類的實現使得你能聲明式地將異常映射到特定的視圖上,還可以在異常被轉發(fā)(forward)到對應的視圖前使用Java代碼做些判斷和邏輯。不過在一些場景,特別是依靠@ResponseBody返回響應而非依賴視圖解析機制的場景下,直接設置響應的狀態(tài)碼并將客戶端需要的錯誤信息直接寫回響應體中,可能是更方便的方法。

你也可以使用@ExceptionHandler方法來做到這點。如果@ExceptionHandler方法是在控制器內部定義的,那么它會接收并處理由控制器(或其任何子類)中的@RequestMapping方法拋出的異常。如果你將@ExceptionHandler方法定義在@ControllerAdvice類中,那么它會處理相關控制器中拋出的異常。下面的代碼就展示了一個定義在控制器內部的@ExceptionHandler方法:

@Controller
public class SimpleController {

    // @RequestMapping methods omitted ...

    @ExceptionHandler(IOException.class)
    public ResponseEntity<String> handleIOException(IOException ex) {
        // prepare responseEntity
        return responseEntity;
    }

}

此外,@ExceptionHandler注解還可以接受一個異常類型的數組作為參數值。若拋出了已在列表中聲明的異常,那么相應的@ExceptionHandler方法將會被調用。如果沒有給注解任何參數值,那么默認處理的異常類型將是方法參數所聲明的那些異常。

與標準的控制器@RequestMapping注解處理方法一樣,@ExceptionHandler方法的方法參數和返回值也可以很靈活。比如,在Servlet環(huán)境下方法可以接收HttpServletRequest參數,而Portlet環(huán)境下方法可以接收PortletRequest參數。返回值可以是String類型——這種情況下會被解析為視圖名——可以是ModelAndView類型的對象,也可以是ResponseEntity?;蛘吣氵€可以在方法上添加@ResponseBody注解以使用消息轉換器會轉換信息為特定類型的數據,然后把它們寫回到響應流中。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號