スプリングブート学習 - グローバル例外処理設定(JSONに戻る)
必要
説明します
@controlleradvice
この注釈は、春2.3の後に追加された新しい注釈です。主に、コントローラーの一般的なニーズのいくつかの低侵襲的強化の支援を提供するために使用され、@RequestMappingアノテーション法で使用されます。
@exceptionhandler
この注釈は、@exceptionHandlerで使用される注釈です。カスタムエラーハンドラーです。 JSON文字列を自分で組み立てて、ページに戻すことができます。
コード
次のようにグローバル例外の処理クラスを作成します。
異なる例外が異なる操作を実装する場合、 @ExceptionHandlerの値の値を異なるために変更するだけです。複数の異なる例外を同時に処理できますが、包含状態は発生できません。
javax.servlet.http.httpservletrequest; Import org.springframework.web.bind.annotation.controlleradvice; Import org.springframework.web.bind.annotation.exceptationhandler; Import org.notedation.whind.annotation@constompublidcent. bodnotation GlobalExceptionHandler { / ** *すべての例外が報告されたエラー * @param request * @param例外 * @return * @throws例外 * / @exceptionhandler(value = exception.class)public string allexceptionhandler(httpservletrequestリクエスト、例外例外)例外{例外。 system.out.println( "エラーを報告しました:"+exception.getLocalizedMessage()); system.out.println( "エラーを報告しました:"+exception.getCause()); system.out.println( "エラーを報告しました:"+exception.getSuppressed()); system.out.println( "エラーを報告しました:"+exception.getMessage()); system.out.println( "エラーを報告しました:"+exception.getStacktrace()); 「サーバーの例外、管理者に連絡してください!」を返します。 }}例外スロークラスをシミュレートします。次の例は、ヌルポインターの例外をスローすることです。分母は例外ではありません
org.springframework.stertype.controller; import org.springframework.web.bind.annotation.requestmapping; Import org.springframework.web.bind.annotation.responsebody;@controller@requestmapping( "/excounttest")@responsebublic class exceptiont( "/sintertett("/sintertet) test(){メッセージmsg = null; msg.toString(); createexception(); 「私は正常です」を返します。 } private void createexception(){int i = 5/0; }}スプリングブートを起動し、実行結果
返された文字列であるため、JSONツールクラスを使用してカプセル化してJSON文字列を返すこともできます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。