How to use “raise” keyword in Python
我读过"加薪"的官方定义,但我还是不太明白它的作用。
简单来说,"加薪"是什么?
示例用法会有所帮助。
它有两个目的。
叶特普给了第一个。
It's used for raising your own errors.
1
2 if something:
raise Exception('My error!')
第二种方法是在异常处理程序中重发当前异常,以便在调用堆栈上进一步处理它。
1 2 3 4 5 6 | try: generate_exception() except SomeException as e: if not can_handle(e): raise handle_exception(e) |
它用于引起错误。
1 2 | if something: raise Exception('My error!') |
这里有一些例子
没有任何参数的
1 | raise |
从python语言参考:
If no expressions are present, raise re-raises the last exception that
was active in the current scope.
如果单独使用
它的目的是表示一个错误情况;它标志着该情况对于正常流程是异常的。
使用
除了
它与C的内部异常非常相似。
更多信息:https://www.python.org/dev/peps/pep-3134/
您可以使用它来引发错误,作为错误检查的一部分:
1 2 | if (a < b): raise ValueError() |
或者处理一些错误,然后作为错误处理的一部分传递:
1 2 3 4 5 6 | try: f = open('file.txt', 'r') except IOError: # do some processing here # and then pass the error on raise |