我读过“加薪”的官方定义,但我还是不太明白它是干什么的。
简单来说,什么是“提高”?
使用示例会有所帮助。
它是用来提高误差的。
if something: raise Exception('My error!')
一些例子在这里
raise引发异常。其他一些语言使用动词“throw”来代替。
raise
它是用来表示错误情况的;它标志着该情况与正常流程不同。
被引发的异常可以由代码'upstream'(一个周围的块,或者堆栈中较早的函数)使用try, except组合再次捕获来处理。
try
except
它有两个目的。
jackcogdill已经给出了第一个:
它被用来提高你自己的错误。 if something: raise Exception('My error!')
它被用来提高你自己的错误。
第二种方法是在异常处理程序中重新引发当前的异常,以便它可以在调用堆栈的更上层进行处理。
try: generate_exception() except SomeException as e: if not can_handle(e): raise handle_exception(e)
你可以使用它来引发错误,作为错误检查的一部分:
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是python语法的特殊用法。这意味着获取异常并重新引发它。如果这种用法可以被称为reraise。
reraise
从Python语言参考:
如果不存在表达式,raise将重新引发最后一个异常
RuntimeError: No active exception to reraise
除了raise Exception("message")和raise之外,Python 3还引入了一个新形式raise Exception("message") from e。它被称为异常链接,它允许您保留原始异常(根本原因)及其回溯。
raise Exception("message")
raise Exception("message") from e
它非常类似于c#中的内部异常。