0

在 django 中,每当发生错误时,如果我们不保留在 try 块中,就会引发错误。在那个时间点(错误期间),如果它不在 try 块中,而不是错误页面,我们可以显示一个 msg 。

我实际上要说的是,django 中是否有任何东西(如信号)在错误期间被激活并打印出那个 msg 。在我的情况下,它是一个 ajax 请求,所以我想要的是,当 try 块中没有某些内容时,如果它仍然引发错误,那么它应该至少发回一个错误 msg(到另一个服务器,该服务器对我们的 ajax 进行了调用服务器)说“发生错误”。

4

2 回答 2

0

据我所知,没有办法全局覆盖 Python 中的默认异常处理。您可以使用try/except块来捕获错误,执行一些代码,然后重新引发异常。

将您的代码放在一个try块中,并在except块中打印您的消息,然后调用raise以重新引发捕获的异常。

前任:

try:
    raise Exception("This is an exception")
except Exception:
    print ("Exception raised, notify server")
    #re-raise exception
    raise

这将打印如下内容:

Exception raised, notify server
Traceback (most recent call last):
  File "[file]", line [line], in [module]
Exception: This is an exception
于 2012-08-03T13:23:30.670 回答
0

在 Django 中,如果发生错误,它实际上并不会自动传播给用户。相反,如果发生错误,它会返回 500 错误页面。如果 Django 处于调试模式,它会给出回溯。如果另一台服务器是智能的,它将意识到有 500 错误消息而不是 200 消息。在 Django 中,您可以在根目录中定义一个“500.html”来处理错误(或使用默认的 Django 模板)。GLHF

于 2012-08-03T16:32:22.027 回答