'except Exception as e'在python中是啥意思? [关闭]

Posted

技术标签:

【中文标题】''except Exception as e''在python中是啥意思? [关闭]【英文标题】:What does ''except Exception as e'' mean in python? [closed]''except Exception as e''在python中是什么意思? [关闭] 【发布时间】:2015-02-15 12:35:55 【问题描述】:

异常处理的典型结构如下:

try:
    pass
except Exception, e:
    raise
else:
    pass
finally:
    pass

请问except Exception, e:orexcept Exception as e: 是什么意思? 通常我会使用print (e) 来打印错误消息,但我想知道程序做了什么来生成 e。

如果我用另一种方式构建它(下),它会是什么样子?

except Exception:
    e = Exception.something

替换something的方法应该是什么?

try下的代码体没有出现异常时,程序会执行else下的代码。但是,finally 在这里做什么?

【问题讨论】:

问题里肯定有很多问题。我建议您阅读try 的文档:docs.python.org/3/reference/… 这将回答大多数问题。 Difference between except: and except Exception as e: in Python的可能重复 除非您特别询问如何解决跨版本兼容性问题(在这种情况下,您的问题显然应该描述该问题),否则您不应混用 python-2.7和python-3.x 标签。 【参考方案1】:

except Exception as eexcept Exception, e(仅限 Python 2.x)意味着它捕获 Exception 类型的异常,并且在 except: 块中,引发的异常(实际对象,而不是异常class) 绑定到变量e

至于finally,它是一个总是 被执行的块,无论发生什么,在except 块之后(如果引发异常),但总是在任何其他会跳转的东西之前超出范围被触发(例如returncontinueraise)。

【讨论】:

“except Exception, e:”和“except Exception as e:”一样吗?第一个示例是否捕获基本异常? 两种形式的作用完全相同。两者都没有捕获基本异常(例如,SystemExitKeyboardInterrupt,它们继承自 BaseException,但不继承自 Exception)。如果你提出了继承自BaseException 的东西(在Python 2 中你可以提出任意对象,例如字符串,但你不应该),它们也不会被捕获。

以上是关于'except Exception as e'在python中是啥意思? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

org.hibernate.exception.GenericJDBCException:关键字“as”附近的语法不正确

C# try catch finally 里面写Exception e是为啥?这个e有啥用?Exception e能改成别的吗?

php中Exception和\Exception有啥区别

(Java)问题 Catch(IOException e) 和 catch(Exception e

exception

HTTP 状态代码:404 收到错误:代码:47,e.displayText() = DB::Exception:未知标识符:TableauSQL.cnt,e.what() = DB::Excepti