2012-06-30 69 views
3

我一直在使用超过一年的GAE,而我要处理的最困难的事情之一是,事实上,我写得很好的代码可能偶尔会引发异常因为GAE呃逆。如何处理与谷歌应用程序引擎的异常

我已经有一个体面的过程,处理异常。我的自定义请求处理器提供了一个很好的错误页面,管理员可以收到一封电子邮件但是,这是一种糟糕的用户体验。

我想要做的是处理异常,所以我可以立即采取适当的行动,并防止一些通用的错误页面。

我的问题是:

  1. 我应该抓住什么异常?
  2. 我应该在哪里找到它们?

我意识到完整的答案并不实际,但我正在寻找一些最常见情况的最佳实践。

对于我应该注意到的例外情况,我有时会看到不在official list上的例外情况。例如,我收到了一个UnknownError。

对于在哪里捕捉异常,我想知道是否应该在每个get/post方法中捕获它们。就像这样:

def get(self): 
    try: 
     # normal get processing 
    except SomeException: 
     # redirect to the same page to try again and fix any data if necessary 

我很惊讶没有更多的信息,因为这是任何GAE应用程序的重要方面。有一些很好的文章herehere,但这些不回答我的问题。

回答

0

我应该捕捉哪些异常?

这取决于您要进行什么级别的错误捕捉。根据我的经验,捕捉正式列表和链接文章中的错误会使您获得非常高的错误捕获水平。如果你需要超越这个范围,除了比试图预测未知错误更容易。

我应该在哪里找到它们?

最有可能的地方(S)为GAE的错误与数据库进行交互时,所以设置一些尝试 - 除了块围在那里,如果你还没有给你在你的努力了良好的回报来处理GAE错误处理。

除了链接文章的建议之外,您还可以考虑将失败的操作放入任务队列中。每个任务在失败之前都会自动重试5次,如果您不需要操作的即时反馈,就可以让您有能力摆脱数据存储开关或其他服务中断。

相关问题