我正在写一个访问数据库的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次或更多次,我应该制作一个模块来处理这些异常或不是吗?另外,在这些情况中,建议关闭我的系统而不是仅显示消息?
谢谢。
答案 0 :(得分:4)
如果你不想使用装饰器,你也可以组合所有的except语句,并使用一些函数来处理你的异常(假设你的错误被称为TimeoutError,ConnectionError和HttpError ......真的不是为清楚起见,即
try:
# do stuff
except (TimeoutError, ConnectionError, HttpError) as e:
handle_exception(e)