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

2020/10/31 17:33 · python ·  · 0评论

我已经读过“ raise”的正式定义,但是我仍然不太明白它的作用。

简单来说,什么是“筹款”?

示例用法将有所帮助。

它有2个目的。

yentup给出了第一个。

它用于引发您自己的错误。

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

第二个是在异常处理程序中重新引发当前异常,以便可以在调用堆栈中进一步处理该异常。

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

它用于引发错误。

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

这里的一些例子

raise没有任何参数是python语法的特殊用法。这意味着获取异常并重新引发它。如果使用此方法,可能会调用它reraise

    raise

来自Python语言参考

如果不存在任何表达式,请raise重新引发当前作用域中活动的最后一个异常。

如果raise单独使用if ,则不带任何参数,严格将其用于提升如果在不引发另一个异常的情况下执行此操作,则会显示以下错误:
RuntimeError: No active exception to reraise

此外raise Exception("message")raisePython 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组合。

本文地址:http://python.askforanswer.com/ruhezaipythonzhongshiyong-raiseguanjianzi.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!