Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这里的er代表什么?_Python - Fatal编程技术网

Python 这里的er代表什么?

Python 这里的er代表什么?,python,Python,在上面的代码中,except语句捕获OSError,但是er变量代表什么 编辑:此项仅排除OSError;有没有办法排除任何错误并为其获取异常对象 er是except子句捕获的实际异常对象。er是异常对象本身。正如其他人所说,er是异常的实例化形式,OSError 如果有用的话,这里有一个替代的、更明确的语法,使用as关键字: 对我来说,这意味着er将是一个错误 顺便说一句,正如Python 2.6中添加的er语法一样。看起来er是类型为OSError的异常对象,看起来它也包含错误。 ER可能代

在上面的代码中,except语句捕获OSError,但是er变量代表什么

编辑:此项仅排除OSError;有没有办法排除任何错误并为其获取异常对象

er是except子句捕获的实际异常对象。

er是异常对象本身。

正如其他人所说,er是异常的实例化形式,OSError

如果有用的话,这里有一个替代的、更明确的语法,使用as关键字:

对我来说,这意味着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