python Django自定义错误消息任何错误(除了尝试,除了)

时间:2012-08-03 13:06:31

标签: python django

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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