如何在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
raise
exception提出。 其他一些语言使用动词“throw”代替。
它旨在表示错误情况。 它标志着这种情况对于正常stream量来说是特殊的。
抛出的exception可以通过代码'upstream'(一个周围的块或堆栈中较早的一个函数)再次捕获来处理它,使用try
( except
组合)。
除了raise Exception("message")
并raise
Python 3引入了一个新的表单, raise Exception("message") from e
。 它被称为exception链,它允许你保留原始exception(根本原因)及其回溯。
这与来自C#的内部exception非常相似。
更多信息: https : //www.python.org/dev/peps/pep-3134/