我有一个令人讨厌的错误,我无法解读而无需阅读django中的整个模型形式逻辑:
django custom model field in admin form gives invalid choice error
基本上正在发生的事情是django模型中的一些表单流程代码引发了ValidationError,然后它在表单进程中被捕获并显示错误消息。
是否有可能跟踪特定类型的异常,即使已经在程序中处理了它也会被引发?
例如:
大型代码库中的文件,此文件中的某个位置引发异常并被捕获,我不知道这个文件在哪里以及哪行...
1 def process_form():
2 ...logic...
3 raise ValudationError()
4 ...logic...
5 except ValudationError:
6 ...handle...
一些显示我的工具: 第3行提出了ValudationError
答案 0 :(得分:0)
我认为我找到了一种方法,至少它是一种解决方法,就是转到ValidationError的定义并在__init__
方法中打印堆栈跟踪:
class ValidationError(Exception):
"""An error while validating data."""
def __init__(self, message, code=None, params=None):
import traceback
print traceback.print_exc()
答案 1 :(得分:0)
是的,可以这样简单地:
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