Python 这里的er代表什么?
在上面的代码中,except语句捕获OSError,但是er变量代表什么 编辑:此项仅排除OSError;有没有办法排除任何错误并为其获取异常对象 er是except子句捕获的实际异常对象。er是异常对象本身。正如其他人所说,er是异常的实例化形式,OSError 如果有用的话,这里有一个替代的、更明确的语法,使用as关键字: 对我来说,这意味着er将是一个错误Python 这里的er代表什么?,python,Python,在上面的代码中,except语句捕获OSError,但是er变量代表什么 编辑:此项仅排除OSError;有没有办法排除任何错误并为其获取异常对象 er是except子句捕获的实际异常对象。er是异常对象本身。正如其他人所说,er是异常的实例化形式,OSError 如果有用的话,这里有一个替代的、更明确的语法,使用as关键字: 对我来说,这意味着er将是一个错误 顺便说一句,正如Python 2.6中添加的er语法一样。看起来er是类型为OSError的异常对象,看起来它也包含错误。 ER可能代
顺便说一句,正如Python 2.6中添加的er语法一样。看起来er是类型为OSError的异常对象,看起来它也包含错误。
ER可能代表错误。@这是唯一例外的OSError。有没有办法排除任何错误并为其获取异常对象?您可以创建一个包含所需错误类型的类/结构OSError、RuntimeError、TypeError、NameError,这样您就可以一次使用所有数据类型。我不确定python在默认情况下是否有类似的功能,但这可能会起作用。此外,由于旧的语法,类似于Exception KeyError、ValueError:的东西不会执行您一开始可能期望的操作,它会捕获一个KeyError并将其分配给局部变量ValueError。因此,除了keyrerror之外,还需要ValueError:。我还更新了答案,以删除不推荐使用的旧样式异常raiseexception,即支持新样式raiseexceptionmessage的消息。如果你打算使用新款式,除了。。作为表单,您肯定应该使用较新的raise语法,这种语法已经支持了较长时间。
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
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