我正在编写一个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次或更多次,我应该制作一个模块来处理这些异常吗?另外,在哪些情况下关闭系统而不仅仅显示消息是明智的?
谢谢。
e
存储了异常变量(类似于使用语句with open(path) as e:
)。明确一点,错误类型将保持与分别执行三个版本时相同--因此如果你执行except (ValueError, TypeError) as e:
,e
将是一个TypeError
或ValueError
。 - Jeff Tratner