Python异常处理 - 最佳实践

时间:2013-04-28 21:26:14

标签: python exception-handling error-handling connection timeout

我正在写一个访问数据库的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次或更多次,我应该制作一个模块来处理这些异常或不是吗?另外,在这些情况中,建议关闭我的系统而不是仅显示消息?

谢谢。

1 个答案:

答案 0 :(得分:4)

如果你不想使用装饰器,你也可以组合所有的except语句,并使用一些函数来处理你的异常(假设你的错误被称为TimeoutError,ConnectionError和HttpError ......真的不是为清楚起见,即

try:
   # do stuff
except (TimeoutError, ConnectionError, HttpError) as e:
   handle_exception(e)