例外は、ユーザーエクスペリエンスの低下につながる、適切に処理されない場合は、システム開発プロセスでは、例外処理は、避けられない、本論文では、開発プロセスのSpringMVCを説明し、知識ポイントの例外処理は、のみなど、共有することを学ぶために不適切な、私を修正してください。
アウトライン
SpringMvc、例外処理では、主に2つのシナリオでは、いくつかの方法、この論文があります。
- @ExceptionHandlerによって受信され、処理されたキャプチャする異常。
- プロセスは@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つの方法で、存在しないかもしれません。
分類についての異常の分析は、次のとおりです。使用された場合、より多くの研究かもしれません。
リマーク
貧富か、苦労しなければなりません。ライオンやガゼルかどうかは、実行されます。