4

我正在编写一个访问数据库的python程序。当我发出 http 请求时,我想捕获三种类型的异常。超时、网络错误和 http 错误。我正在寻找处理这种情况的最佳方法。我需要在我的代码的多个区域多次检查这些异常,并且每次看起来都像这样:

try:

   //some request

except timeout:
    print '\nException: Timeout Error'

except connection error:
    print '\nException: Network Error'

except http error, e:
    print 'Exception: %s.' % e

由于我必须多次执行此操作,至少可能是 8 次或更多,我是否应该制作一个模块来处理这些异常?此外,在哪种情况下,最好关闭我的系统而不是只显示一条消息?

谢谢你。

4

1 回答 1

4

如果你不想使用装饰器,你也可以结合所有的 except 语句,并使用一些函数来处理你的异常(假设你的错误被称为 TimeoutError、ConnectionError 和 HttpError……为了清楚起见并不重要) IE

try:
   # do stuff
except (TimeoutError, ConnectionError, HttpError) as e:
   handle_exception(e)
于 2013-04-28T22:22:51.843 回答