Узнайте вместе SpringMVC обработки исключений

В процессе разработки системы, обработка исключений является неизбежной, если исключение не обрабатывается должным образом, приведет к плохому пользовательскому опыту, эта статья объясняет SpringMVC в процессе разработки, пункт обработка исключений знания, только научиться делиться, например, неадекватными, пожалуйста, поправьте меня.

очертание

В SpringMVC, манипуляционный Там исключение несколько способов, эта статья в основном по двум сценариям:

  1. Аномальные для захвата получены и обработаны @ExceptionHandler.
  2. Процесс возвращается, чтобы настроить содержание, @ResponseStatus коды состояния аннотаций.

По @ExceptionHandler процедуры

1. пользовательский класс исключения, который наследует от класса Exception

Как следует: @ExceptionHandler отмечен на методе, этот метод может быть использован для представления обработки исключений, если несколько исключений должны быть захвачены, а затем через запятую.

Если вам нужно перехватывать исключения других классов, нам нужно увеличить @ControllerAdvice аннотацию на классе.

1  пакет com.hex.third;
2  
3  импорта org.springframework.web.bind.annotation.ControllerAdvice;
4  импорта org.springframework.web.bind.annotation.ExceptionHandler;
5  импорта org.springframework.web.servlet.ModelAndView;
6  
7  / ** 
8  *自定义异常
 9  * @author Администратор
 10  *
 11   * / 
12  
13  @ControllerAdvice
 14  общественного  класса MyException распространяется исключение {
 15      
16      / ** 
17      * Этот метод может захватить этот класс ArithmeticException выброшено исключение , которое может поддерживать несколько аномалий
 18       * @param , как бывший быть захваченным, этот метод должен иметь только один аргумент, если существуют другие типы параметров, то будет ошибка
 19       * @return 
20       * / 
21      @ExceptionHandler ({ап ArithmeticException. класс , Ап ArrayIndexOutOfBoundsException. класс , MyArrayOutofBoundsException. класс })
 22      общественный ModelAndView handlerException (Исключение ех) {
 23          // фонового вывода информации ех 
24          System.out.println (ex.getMessage ( ));
 25          // информация об ошибке отображается на переднем плане 
26 является          ModelAndView МАВ = новый новый ModelAndView ();
27          mav.setViewName ( "ошибка" );
28          mav.addObject ( "Exce" , ех);
29          Возвращение MAV;
30      }
 31 }

2. Принимая во внимание метод, математика выброшено исключение, вы можете захватить и отобразить страницу ошибки

1  пакет com.hex.third;
2  
3  импорта org.springframework.stereotype.Controller;
4  импорта org.springframework.web.bind.annotation.ControllerAdvice;
5  импорта org.springframework.web.bind.annotation.RequestMapping;
6  импорта org.springframework.web.servlet.ModelAndView;
7  
8  @Controller
 9  общественный  класс Exce2Controller {
 10  
11      / ** 
12       *抛出一个异常
 13       * @return 
14       * / 
15      @RequestMapping ( "/ helloexce2")
 16      общественных ModelAndView HelloExce2 () {
 17          попытка {
 18              INT = 1/0 ;
19          } задвижка (ArithmeticException ех) {
 20              бросок ех;
21          }
 22          ModelAndView MAV = новый ModelAndView ();
23          mav.addObject ( "helloexce", "Привет исключение" );
24          mav.setViewName ( "успех" );
25          возвращение MAV;
26      }
 27 }

3. Выполните тест

Вывод страницы ошибки следующим образом:

По @ResponseStatus, возвращает сообщение об ошибке, шаги

1. пользовательский класс исключения, и добавляет аннотированный @ResponseStatus

Как следует: значение показывает код состояния, является перечисляемым тип, информация о состоянии отображения причины

. 1  Пакет com.hex.third;
 2  
. 3  Импорт org.springframework.http.HttpStatus;
 4 .  Импорт org.springframework.web.bind.annotation.ResponseStatus;
 . 5  
. 6  / ** 
. 7  * пользовательский класс исключений
 8.  * @Author Администратор
 9.  * @ResponseStatus может быть выражен либо в передней части класса, таблица может идентифицировать ранее метод
 10  *
 . 11   * / 
12 @ResponseStatus (значение = HttpStatus.FORBIDDEN, причина = «Запрещенная страница 22222» )
 13  общественный  класс MyArrayOutofBoundsException расширений с Exception {
 14  
15 }

2. Определить метод Метательного

Как следует:

1  / ** 
2       *测试第三个异常
 3       * @return 
4       * @throws MyArrayOutofBoundsException
 5       * / 
6      @RequestMapping ( "/ helloexce3" )
 7      общественных ModelAndView HelloExce3 () бросает MyArrayOutofBoundsException {
 8 ,          если ( истинно ) {
 9          бросок  новый MyArrayOutofBoundsException ();
10          }
 11          ModelAndView MAV = новый ModelAndView ();
12          mav.addObject ( "helloexce", "Привет исключение");
13          mav.setViewName ( "успех" );
14          возвращение MAV;
15      }

3. Выполните тест

Как следует: Сообщение является пользовательской информацией

 

4. Примечание: @ExceptionHandler и @ResponseStatus два способа обработки исключений, не могут существовать.

О аномалии анализа классифицируют следующим образом: при использовании, может быть больше исследований.

замечание

 Будь львом или газелью, чтобы работать, будь то богатый или бедный, должны бороться.

рекомендация

отwww.cnblogs.com/hsiang/p/11605221.html
рекомендация