引发异常“这是错误”和引发“这是错误”之间的区别? [复制]
Posted
技术标签:
【中文标题】引发异常“这是错误”和引发“这是错误”之间的区别? [复制]【英文标题】:Difference between raise Exception 'This is the error' and raise 'This is the error'? [duplicate] 【发布时间】:2019-12-26 02:31:38 【问题描述】:我见过有人同时做这两种方式,但我看不出它们之间的区别:
raise Exception('This is the error')
和
raise 'This is the error'
我应该使用哪一个?
【问题讨论】:
raise 'This is the error'
那行不通。你在哪里看到的?
raise Exception 'This is the error'
这也不行。也许你的意思是raise Exception('This is the error')
?
很久很久以前,人们可以提出任何价值作为例外,但我认为“特性”在 Python 2.0 中被消除了。
非常老的 Python 版本中的 raise
语句与现在完全不同;例如,见docs.python.org/release/1.5.2p2/ref/raise.html。
【参考方案1】:
也不要使用。首先是语法错误:
>>> raise Exception "This is an error"
File "<stdin>", line 1
raise Exception "This is an error"
^
SyntaxError: invalid syntax
而第二个是类型错误(你不能“提升”str
值):
>>> raise "this"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: exceptions must derive from BaseException
正确的形式是使用错误消息作为参数调用异常类型:
raise Exception("this is the error")
在所需的异常不需要参数的情况下,引发 Exception
类型本身等同于引发创建时不带参数的实例。
raise Exception # equivalent to raise Exception()
【讨论】:
以上是关于引发异常“这是错误”和引发“这是错误”之间的区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章