[英]Is there a buildin(or 3rd party) function in Python to get the exception caught in context?
Python中是否有一個函數,例如get_exception,所以我可以這樣做:
try:
can_raise_anything()
except:
ex = *get_exception()*
print('caught something: ' + str(ex))
我知道在 Python 3 中,我應該使用except BaseException as ex:
來完成任務。 我只是想知道是否有一個函數可以做到這一點。
except BaseException as e
也適用於 Python 2。
如果出於某種原因你真的想使用一個函數, sys.exc_info()
將返回一個元組,它的第二個元素是異常對象。 (第一個元素是異常類型,第三個元素是回溯。)
except
塊可以接收一個附加部分,如下所示:
try:
stuff()
except Exception as e:
print e
一些庫(包括內置庫)提供了特定的Exception
類型,可用於根據發現的錯誤類型做出更好的反應。 你可以有很多的事實結合這except
一個塊try
塊,你可以做一個非常故障安全應用程序。 復雜的try-except
塊示例:
try:
result = a / b
except TypeError as e:
print "Woops! a and b must be numbers!"
result = int(a) / int(b)
print e
except NameError as e:
print "A variable used doesn't exist!"
print e
except ArithmeticError as e:
print "It seems you've gone past infinity, under atomicity or divided by zero!"
print e
except Exception as e:
print "Something REALLY unexpected happened!"
print e
示例中使用的內置異常:
except
s 或僅用於“其他一切”可以在http://docs.python.org/2/library/exceptions.html找到 Python 2.x 的內置異常列表及其描述。 注意:通常自定義庫有描述它們引發的自定義異常的注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.