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

但是,我无法捕捉

这意味着有些要么没有抛出异常,要么抛出的异常不同DeadlineExceededException

有没有其他方法可以捕捉?

任何带有异常的 catch 块或任何其他比处理此异常DeadlineExceededException更通用的异常。DeadlineExceededException

于 2013-01-30T08:13:56.497 回答
0

我们在这里讨论两个例外:DeadlineExceededExceptionHardDeadlineExceededError.

DeadlineExceededException您达到某些限制时,例如 HTTP 请求调用应在 60 秒内完成它们的处理等,就会抛出。这是您可以在代码中捕获的内容。

但是,当您捕获该异常时,这意味着您必须非常快速地完成处理(通常不到一秒),否则将HardDeadlineExceededError引发异常并且您无法在应用程序中捕获该异常。

因此,最有可能发生的是您能够捕获该异常,但您的代码可能需要太多时间才能在 catch 处理程序中完成,因此会HardDeadlineExceededError被抛出。有时,当 App Engine 运行时太忙而无法引发时,也会发生这种情况,DeadlineExceededException结果它只是抛出了HardDeadlineExceededError,而您无法捕捉到。

有关更多详细信息,请参阅https://developers.google.com/appengine/articles/deadlineexceedederrors

于 2013-01-30T14:18:10.193 回答