一緒に例外処理のSpringMVCを学びます

例外は、ユーザーエクスペリエンスの低下につながる、適切に処理されない場合は、システム開発プロセスでは、例外処理は、避けられない、本論文では、開発プロセスのSpringMVCを説明し、知識ポイントの例外処理は、のみなど、共有することを学ぶために不適切な、私を修正してください。

アウトライン

SpringMvc、例外処理では、主に2つのシナリオでは、いくつかの方法、この論文があります。

  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を元に捕捉されるように、このメソッドは、パラメータの他のタイプが存在する場合、それはエラーになり、引数を1つしか持っていなければならない
 19       * @returnを
20である      * / 
21である      @ExceptionHandler({はArithmeticException。クラス、は、ArrayIndexOutOfBoundsException。クラス、MyArrayOutofBoundsException。クラス})
 22は     公共のModelAndView handlerException(例外例){
 23は         // 背景情報出力EX 
24          (のSystem.out.println(ex.getMessage ));
 25          // 最前面に表示されたエラー情報
26である          のModelAndView MAV = 新しい新規のModelAndView()。
27          mav.setViewName( "エラー" )。
28          mav.addObject( "exce" 、EX);
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          のtry {
 18              のint I = 1/0 19          } キャッチ(はArithmeticExceptionのEX){
 20              スローEX。
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 延び例外{
 14  
15 }

2.スローされるメソッドを定義します。

次のように:

1  / ** 
2       *测试第三个异常
 3       * @return 
4       * @throws MyArrayOutofBoundsException
 5       * / 
6      ( "/ helloexce3" @RequestMapping 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例外を処理するための2つの方法で、存在しないかもしれません。

分類についての異常の分析は、次のとおりです。使用された場合、より多くの研究かもしれません。

リマーク

 貧富か、苦労しなければなりません。ライオンやガゼルかどうかは、実行されます。

おすすめ

転載: www.cnblogs.com/hsiang/p/11605221.html