如何在 Python 中使用"raise"关键字



我已经阅读了" 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'。

它旨在发出错误情况;它标志着情况与正常流程非常出色。

可以使用tryexcept组合来处理Code'上游'(周围的块或较早的函数)的代码再次捕获异常。

最新更新