3
我在写一个python程序访问数据库。我想在发出http请求时捕获三种类型的异常。超时,网络错误和http错误。我正在寻找处理这种情况的最佳方法。我需要在我的代码多个区域多次检查这些例外,它会是这个样子,每次:Python异常处理 - 最佳实践
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个或更多,应该我创建一个模块来处理这些异常或不是?同样在哪些情况下,建议关闭我的系统而不是仅显示一条消息?
谢谢。
出于好奇,当你做除外(超时,CONNECTION_ERROR,HTTP_ERROR)作为E:这是否意味着,电子将字符串“超时”,“CONNECTION_ERROR”,“HTTP_ERROR “,还是会是实际的错误?同样,如果第一部分是这种情况,那么你怎样捕捉实际的错误,例如404错误或其他性质? – CoffeeIsProgramming 2013-04-28 22:46:46
我只是你的风格。你需要实际的错误;但是,您可以将它们存储为变量。它只是意味着'e'存储了异常变量(它类似于像'with open(path)'这样的语句作为e:'为了清楚起见,错误将保持相同的类型,如果你做了三个单独的版本 - 所以如果你把'except(ValueError,TypeError)'作为e:','e'将是一个'TypeError'或'ValueError' – 2013-04-28 23:01:21