一つの方法:
/ **
*取り扱い春ブーツ例外1
*追加リソース/テンプレートerror.html
*高いバージョンのメッセージを取得する異常情報{} $
*低バージョン情報取得異常例外{} $
* nullポインタ例外
* java.langで。 NullPointerExceptionが
*すべての例外の欠点は、同じページに表示されます
* @return
* /
@のRequestMapping( "/ showOne")
公共の文字列showOne(){
文字列str = NULL;
System.out.printlnは(str.length());
リターン」インデックス「;
}
方法:
(同じコントローラ有効)のModelAndViewを使用して
/ **
*例外2を扱う
*は、同じクラスのメソッドに新しいオブジェクトを返すのModelAndView
* Eパラメータ例外
ページアノテーションで返される*注射例外クラス@ExceptionHandler
*異常の種類に応じて。例外スロー異なるページ
*欠点は、各コントローラプロセスでなければならない
* @paramのE
* @return
* /
@ExceptionHandler(java.lang.NullPointerException.class値= {})
公衆のModelAndView getShowOneException(例外E){
ミュージックビデオの新しい新しいのModelAndView =のModelAndView();
mv.addObject( "ERROR1"、e.toString());
mv.setViewName( "ERROR1");
ミュージックビデオを返す;
}
グローバルとアノテーションを使用して、次の3つの方法が@ExceptionHandler @ControllerAdvice
利点を:すべてコントローラを検出することができる
欠点を:別の関係者に対応する異なるエラーページ@ControllerAdvice
{クラスGlobalControllerパブリック
/ **
処理* 3つの例外
*は、同じクラスのModelAndView方法の新しいオブジェクトを返す
* Eパラメータ例外
ページを返すように例外クラスを注入することにより*注釈@ExceptionHandler
異常の種類に応じて*を。例外スロー異なるページ
* @paramのE
* @return
* /
/ *
@ExceptionHandler(java.lang.NullPointerException.class値= {})
公共のModelAndView getShowOneException(例外E){
のModelAndViewミュージックビデオの新しい新しいのModelAndView =();
mv.addObject(「error3」、e.toString());
mv.setViewName(「error3」);
戻り音楽ビデオディスク;
}
}
の4つの方法
注釈@Configuration @Bean注入を使用して
、例外を複数処理するための方法を実装する
利点を:のみ片道
短所:エラーではなく漠然としました。
処理例外@Configuration //設定
パブリッククラスGlobalController {
@Bean
公共SimpleMappingExceptionResolver getSimpleMappingExceptionを(){
SimpleMappingExceptionResolver SimpleMappingExceptionResolver新しい新しいSPE =();
プロパティ新しい新しいP =プロパティ();
//キー:例外の種類値:ページビューに対応する
p.setProperty( "java.lang.ArithmeticException"、 "error6");
p.setProperty( "java.lang.NullPointerExceptionが"、 "error5");
spe.setExceptionMappings(P);
戻りSPE;
}
}
モード5、および@Configurationを使用して実装HandlerExceptionResolverインターフェイスの
利点は:唯一異なる異常が別のページや複数の例外を処理するのと同じ方法を指定することができません
処理例外@Configuration //設定
GlobalIHandlerController実装HandlerExceptionResolver {publicクラスを
@Override
公共のModelAndView resolveException(HttpServletRequestのリクエスト、レスポンスのHttpServletResponse、ハンドラオブジェクト、例外EX){
のModelAndViewミュージックビデオの新しい新しいのModelAndView =();
//例外例外かどうかを判断し
(場合instanceofのはArithmeticException EX){
//指定されたページビュー
mv.setViewName( "error7");
}
(NullPointerExceptionがinstanceofのEX)IF {
mv.setViewName( "error8");
}
//異常情報
mv.addObject( "エラー"、EX .toString());
ミュージックビデオを返します;
}
}
これらは、自己の要約です。シニアの記事は、私を許して参照希望を持っています。不備ください展示会