gra*_*rts 9 python exception-handling
请考虑以下代码:
def f(x):
if x < 10:
return Exception("error")
else:
raise Exception("error2")
if __name__ == "__main__":
try:
f(5) # f(20)
except Exception:
print str(Exception)
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?我什么时候应该使用return Exception?什么时候应该使用raise?
Ziy*_*her 18
raise并且return是两个固有不同的关键字.
raise,通常称为throw其他语言,在调用堆栈的当前级别产生错误.您可以通过覆盖可能在其中引发错误的区域并在中try处理该错误来捕获引发的错误except.
try:
if something_bad:
raise generate_exception()
except CertainException, e:
do_something_to_handle_exception(e)
Run Code Online (Sandbox Code Playgroud)
return在另一方面,返回一个值到这个函数是被调用,所以通常返回一个例外是不是你在这样的情况下寻找功能,因为除了本身不是引发的东西except是不是raiseING触发它的异常
| 归档时间: |
|
| 查看次数: |
5056 次 |
| 最近记录: |