我已经阅读了" Rise"的官方定义,但我仍然不太了解它的作用。
用最简单的话来说,什么是"提升"?
示例用法会有所帮助。
它有两个目的。
jackcogdill给出了第一个:
它用于提高自己的错误。
if something: raise Exception('My error!')
第二个是在异常处理程序中reraise current 异常,以便可以在呼叫堆栈上进一步处理。
try:
generate_exception()
except SomeException as e:
if not can_handle(e):
raise
handle_exception(e)
raise
没有任何参数是python语法的特殊用途。这意味着获得例外并重新调整。如果此用法可以称为 reraise
。
raise
来自Python语言参考:
如果不存在表达式,请重新提升最后一个例外 在当前范围中活跃。
如果raise
单独使用而没有任何参数,则将其严格用于 reraise -ing。如果在其他例外情况下完成的情况下完成,则显示以下错误: RuntimeError: No active exception to reraise
它用于增加错误。
if something:
raise Exception('My error!')
这里的一些示例
除了 raise Exception("message")
和 raise
python 3还引入了新表格raise Exception("message") from e
。它称为异常链接,它允许您使用其追溯。
它与C#的内部异常非常相似。
更多信息:https://www.python.org/dev/peps/pep-3134/
您可以使用它来提出错误作为错误检查的一部分:
if (a < b):
raise ValueError()
或处理一些错误,然后作为错误处理的一部分传递:
try:
f = open('file.txt', 'r')
except IOError:
# do some processing here
# and then pass the error on
raise
raise
会导致异常。其他一些语言代替了动词'throw'。
它旨在发出错误情况;它标志着情况与正常流程非常出色。
可以使用try
,except
组合来处理Code'上游'(周围的块或较早的函数)的代码再次捕获异常。