try:
os.execvp('sqlite3', args)
except OSError, er:
if er.errno == 2: #file not found
raise OSError, _("sqlite3 executable not found. Is it installed?")
else:
raise
except:
raise
在上面的代码中,except
语句会捕获OSError
,但er
变量代表什么?
编辑:这个只有OSError
除外;有没有办法除了任何错误并获得它的异常对象?
答案 0 :(得分:5)
正如其他人所说,er
是异常的实例化形式,OSError
。
如果它有用,可以使用as
关键字,这是一种替代的,更明确的语法:
try:
os.execvp('sqlite3', args)
except OSError as er:
if er.errno == 2: #file not found
raise OSError(_("sqlite3 executable not found. Is it installed?"))
else:
raise
except:
raise
对我来说,er
将是OSError
。
顺便说一句,在Python 2.6中添加了as er
语法。
答案 1 :(得分:2)
er
是except
子句捕获的实际异常对象。
答案 2 :(得分:1)
er
是异常对象本身。
答案 3 :(得分:1)
看起来像是一个异常对象(类型OSError也看起来像是保存错误。 ER可能代表错误。