引发异常“这是错误”和引发“这是错误”之间的区别?

时间:2019-08-20 20:16:41

标签: python python-3.x exception try-catch

我见过人们在做这两种事情,但我看不出它们之间的区别:

raise Exception('This is the error')

raise 'This is the error'

我应该使用哪个?

1 个答案:

答案 0 :(得分:0)

都不使用。第一个是语法错误:

>>> 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()