Python 如何在Django视图中知道并引发确切的异常

Python 如何在Django视图中知道并引发确切的异常,python,django,exception,error-handling,Python,Django,Exception,Error Handling,我们有时在Django中的try:and except:block中编写代码。但我的困惑是在异常内部写什么:阻塞还是如何知道确切的错误并提出它 例如:在这个特殊的例子中,我从views.py调用了一个实用函数,我是这样写的 try: res = process_my_data(request, name, email) except: import sys print sys.exc_value 在进程\u我的\u数据定义中,我正在执行某种DB操作。如果失败了,我应该在

我们有时在Django中的try:and except:block中编写代码。但我的困惑是在异常内部写什么:阻塞还是如何知道确切的错误并提出它

例如:在这个特殊的例子中,我从views.py调用了一个实用函数,我是这样写的

try:
    res = process_my_data(request, name, email)
except:
    import sys
    print sys.exc_value

在进程\u我的\u数据定义中,我正在执行某种DB操作。如果失败了,我应该在这里写什么。我不知道该写什么,这就是为什么要写print sys.exc_value

我想你必须问自己的最大问题是,为什么我写这篇文章只是一种尝试,除了一开始?您知道try中的内容能够引发异常吗?如果答案是肯定的,那么您肯定知道要捕获什么类型的异常。在本例中,它似乎取决于您使用的后端数据库库。查找您正在使用的文档。从那以后,您就可以决定在exception中要做什么了——如果抛出异常,您希望您的程序如何运行?至少,我会捕获一个常规异常,并使用如下方式将输出打印到控制台:

except Exception, e:        
        message = str(e)
        print (message)

为什么这个问题被否决了,请添加你的评论伙伴。如果你的实用程序函数的一个方法失败了,你不应该抛出异常,而不是你的视图代码吗?对,布兰登,我可以在实用程序函数中使用try:except:block,但我不知道我应该抛出或引发哪个异常。