Annotation Interface OnError


リクエストハンドラが例外を送出した場合のレスポンスを指定するInterceptor
 次の例では、"ApplicationException"が送出された場合の遷移先を
 入力画面(registerForm.jsp)に設定している。
 
 @OnError (
      type = ApplicationException.class
    , path ="servlet://registerForm.jsp"
  )
  public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
      registerUser(req.getParamMap());
      return new HttpResponse(200, "servlet://registrationCompleted.jsp");
  }
  
  この処理は、以下のコードによる処理と本質的に同等である。
  
  public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
      try {
          registerUser(req.getParamMap());
          return new HttpResponse(200, "servlet://registrationCompleted.jsp");
      } catch(ApplicationException ae) {
          throw new HttpErrorResponse(400, "servlet://registerForm.jsp", ae);
      }
  }
 
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    OnErrorインターセプタの実装。
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    リクエストハンドラから、type() に合致する実行時例外が送出された場合に送信する画面のリソースパスを返す。 (必須属性)
    このインターセプタがハンドリングする実行時例外。 (必須属性)
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    リクエストハンドラから、type() に合致する実行時例外が送出された場合のレスポンスステータスを返す。
  • Element Details

    • type

      Class<? extends RuntimeException> type
      このインターセプタがハンドリングする実行時例外。 (必須属性)
    • path

      String path
      リクエストハンドラから、type() に合致する実行時例外が送出された場合に送信する画面のリソースパスを返す。 (必須属性)
    • statusCode

      int statusCode
      リクエストハンドラから、type() に合致する実行時例外が送出された場合のレスポンスステータスを返す。
       デフォルトではステータスコード400(Bad Request)となる。
       
      Default:
      400