gpt4 book ai didi

python - 如何在自定义 handler500 中获取异常?

转载 作者:行者123 更新时间:2023-12-05 06:05:53 26 4
gpt4 key购买 nike

我正在开发自己的错误页面模板,但是 handler500 没有获取异常参数,我不知道错误的原因是什么。

我该怎么做?我的自定义模板已经在工作,但我需要有关异常原因的信息。我的 handler500:

def error_500(request):
template_name = "error_500.html"
error_code = "500"
url = request.build_absolute_uri()
username = request.user.username
useruuid = request.user.uuid
date = datetime.datetime.now()
errorObject = Errors(
error_code=error_code, url=url,
username=username, useruuid=useruuid,
date=date
)
errorObject.save()
errorUUID = errorObject.uuid
context = {
"errorUUID": errorUUID
}
return render(request, template_name, context)

最佳答案

您可以使用 sys.exc_info()

import sys; 

def error_500(request):
...
type_, value, traceback = sys.exc_info()
...

来自 Python 文档:

此函数返回一个包含三个值的元组,这些值提供有关当前正在处理的异常的信息。返回的信息特定于当前线程和当前堆栈帧。如果当前堆栈帧没有处理异常,则从调用堆栈帧或其调用者获取信息,依此类推,直到找到正在处理异常的堆栈帧。这里,“处理异常”被定义为“执行异常子句”。对于任何堆栈帧,只能访问有关当前正在处理的异常的信息。

如果堆栈上的任何地方都没有处理异常,则返回一个包含三个 None 值的元组。否则,返回的值为 (type, value, traceback)。

关于python - 如何在自定义 handler500 中获取异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65926108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com