[英]Is it possible in python to track exception raised even it has been caught?
我遇到了一個討厭的錯誤,如果沒有閱讀django中的整個模型形式邏輯就無法解決:
基本上,發生的事情是在Django模型中,表單流程代碼在其中引發了ValidationError,然后在表單流程中將其捕獲並顯示錯誤消息。
即使已經在程序內部處理過,也可以跟蹤引發的特定類型的異常嗎?
例如:
大型代碼庫中的文件,此文件中的某個位置引發了異常,也被捕獲,我不知道此文件在哪里以及哪一行...
1 def process_form():
2 ...logic...
3 raise ValudationError()
4 ...logic...
5 except ValudationError:
6 ...handle...
向我展示的一些工具:在第3行中引發了ValudationError
我想我已經找到了一種方法,至少可以通過以下方法解決:去ValidationError的定義並在__init__
方法中打印stacktrace:
class ValidationError(Exception):
"""An error while validating data."""
def __init__(self, message, code=None, params=None):
import traceback
print traceback.print_exc()
是的,可以像這樣簡單地完成 :
def process_form():
...logic...
raise ValudationError()
...logic...
except ValudationError as e:
print e ### 'e' will be an object of Exception raised
import traceback
print traceback.print_exc()
...handle...
對於這樣的多個異常 :
except (ValudationError, AttributeError) as e:
有關更多信息,您可以閱讀 : https : //docs.python.org/2/tutorial/errors.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.