0

DeadlineExceededExceptionをキャッチしてみました。

try
{
    Client restletClient  =  new Client(Protocol.HTTP);
    Request req    =  new Request(Method.GET, urltocall);
    Response res    =  restletClient.handle(req);
    log.info("The status of the response : " + res.getStatus());
    responseContent   =  res.getEntity().getText();
    log.info("Content is  : " + responseContent);
    }
    catch(DeadlineExceededException e)
    {
         log.log(java.util.logging.Level.SEVERE,e.getMessage(),e);
         log.info("Inside catch block send mail to client service team!");
         response.sendRedirect("/Messages");
    }

でも、捕まえられません。他に捕まえる方法はありますか?

4

2 に答える 2

0

ここで話している2つの例外があります:DeadlineExceededExceptionHardDeadlineExceededError

は、DeadlineExceededExceptionいくつかの制限に達したときにスローされます。たとえば、HTTPリクエスト呼び出しは60秒以内に処理を完了する必要があります。これは、コードでキャッチできるものです。

ただし、その例外をキャッチすると、処理を非常に迅速に(通常は1秒未満で)終了する必要があります。そうしないと、HardDeadlineExceededError例外がスローされ、アプリケーションでキャッチできません。

したがって、最も可能性が高いのは、その例外をキャッチできるが、コードがcatchハンドラーで完了するのに時間がかかりすぎるため、HardDeadlineExceededErrorがスローされることです。場合によっては、App Engineランタイムがビジー状態でを上げることができずDeadlineExceededException、その結果、単にをスローしたときにも発生する可能性HardDeadlineExceededErrorがありますが、これはキャッチできません。

詳細については、 https://developers.google.com/appengine/articles/deadlineexceedederrorsを参照してください。

于 2013-01-30T14:18:10.193 に答える
0

しかし、私は捕まえることができません

つまり、例外がスローされないか、DeadlineExceededExceptionスローされたものとは異なる例外が発生します。

他に捕まえる方法はありますか?

例外のあるcatchブロック、DeadlineExceededExceptionまたはこの例外を処理するよりも一般的なその他のDeadlineExceededException例外。

于 2013-01-30T08:13:56.497 に答える