'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 e
或 except Exception, e
(仅限 Python 2.x)意味着它捕获 Exception
类型的异常,并且在 except:
块中,引发的异常(实际对象,而不是异常class) 绑定到变量e
。
至于finally
,它是一个总是 被执行的块,无论发生什么,在except
块之后(如果引发异常),但总是在任何其他会跳转的东西之前超出范围被触发(例如return
、continue
或raise
)。
【讨论】:
“except Exception, e:”和“except Exception as e:”一样吗?第一个示例是否捕获基本异常? 两种形式的作用完全相同。两者都没有捕获基本异常(例如,SystemExit
或 KeyboardInterrupt
,它们继承自 BaseException
,但不继承自 Exception
)。如果你提出了不继承自BaseException
的东西(在Python 2 中你可以提出任意对象,例如字符串,但你不应该),它们也不会被捕获。 以上是关于'except Exception as e'在python中是啥意思? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
org.hibernate.exception.GenericJDBCException:关键字“as”附近的语法不正确
C# try catch finally 里面写Exception e是为啥?这个e有啥用?Exception e能改成别的吗?
(Java)问题 Catch(IOException e) 和 catch(Exception e
HTTP 状态代码:404 收到错误:代码:47,e.displayText() = DB::Exception:未知标识符:TableauSQL.cnt,e.what() = DB::Excepti