如何在Python中使用“raise”关键字

我看过“提高”的官方定义,但我还是不太明白它的作用。

最简单的说,什么是“提高”?

使用示例将有所帮助。

它有两个目的。

yentup给了第一个。

它用于提高你自己的错误。

 if something: raise Exception('My error!') 

第二个是在exception处理程序中重新显示当前exception,以便在调用堆栈中进一步处理。

 try: generate_exception() except SomeException as e: if not can_handle(e): raise handle_exception(e) 

它被用来提出错误。

 if something: raise Exception('My error!') 

这里有一些例子

raise没有任何参数是python语法的特殊用法。 这意味着得到exception并重新提高。 如果这个用法可能被称为reraise

  raise 

来自Python语言参考 :

如果不存在任何expression式,则引发重新引发当前作用域中活动的最后一个exception。

如果没有任何争论单独使用raise是严格用于重新评估。 如果在没有对另一个exception进行重新评估的情况下完成,则会显示以下错误: RuntimeError: No active exception to reraise

您可以使用它来提高错误作为错误检查的一部分:

 if (a < b): raise ValueError() 

或者处理一些错误,然后作为error handling的一部分传递它们:

 try: f = open('file.txt', 'r') except IOError: # do some processing here # and then pass the error on raise 

raiseexception提出。 其他一些语言使用动词“throw”代替。

它旨在表示错误情况。 它标志着这种情况对于正常stream量来说是特殊的。

抛出的exception可以通过代码'upstream'(一个周围的块或堆栈中较早的一个函数)再次捕获来处理它,使用tryexcept组合)。

除了raise Exception("message")raise Python 3引入了一个新的表单, raise Exception("message") from e 。 它被称为exception链,它允许你保留原始exception(根本原因)及其回溯。

这与来自C#的内部exception非常相似。

更多信息: https : //www.python.org/dev/peps/pep-3134/