欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡(jiǎn)單了解SpringMVC全局異常處理常用方法

 更新時(shí)間:2020年09月23日 10:24:47   作者:柒  
這篇文章主要介紹了簡(jiǎn)單了解SpringMVC全局異常處理常用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

項(xiàng)目中,可能會(huì)拋出多個(gè)異常,我們不可以直接將異常的堆棧信息展示給用戶,有兩個(gè)原因:

  • 用戶體驗(yàn)不好
  • 非常不安全

所以,針對(duì)異常,我們可以自定義異常處理,SpringMVC 中,針對(duì)全局異常也提供了相應(yīng)的解決方案,主要是通過(guò) @ControllerAdvice 和@ExceptionHandler 兩個(gè)注解來(lái)處理的。

以上傳大小超出限制為例,自定義異常,只需要提供一個(gè)異常處理類(lèi)即可:

@ControllerAdvice//表示這是一個(gè)增強(qiáng)版的 Controller,主要用來(lái)做全局?jǐn)?shù)據(jù)處理
public class MyException {
  @ExceptionHandler(Exception.class)
  public ModelAndView fileuploadException(Exception e) {
    ModelAndView error = new ModelAndView("error");
    error.addObject("error", e.getMessage());
    return error;
  }
}

在這里:

  • @ControllerAdvice 表示這是一個(gè)增強(qiáng)版的 Controller,主要用來(lái)做全局?jǐn)?shù)據(jù)處理
  • @ExceptionHandler 表示這是一個(gè)異常處理方法,這個(gè)注解的參數(shù),表示需要攔截的異常,參數(shù)為 Exception 表示攔截所有異常,這里也可以具體到某一個(gè)異常,如果具體到某一個(gè)異常,那么發(fā)生了其他異常則不會(huì)被攔截到。
  • 異常方法的定義,和 Controller 中方法的定義一樣,可以返回 ModelAndview,也可以返回 String 或者 void

例如如下代碼,指揮攔截文件上傳異常,其他異常和它沒(méi)關(guān)系,不會(huì)進(jìn)入到自定義異常處理的方法中來(lái)。

@ControllerAdvice//表示這是一個(gè)增強(qiáng)版的 Controller,主要用來(lái)做全局?jǐn)?shù)據(jù)處理
public class MyException {
  @ExceptionHandler(MaxUploadSizeExceededException.class)
  public ModelAndView fileuploadException(MaxUploadSizeExceededException e) {
    ModelAndView error = new ModelAndView("error");
    error.addObject("error", e.getMessage());
    return error;
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論