gpt4 book ai didi

python - 处理 Python 包中未处理的异常

转载 作者:行者123 更新时间:2023-12-01 05:02:08 25 4
gpt4 key购买 nike

我已通过 the-real-django-wordpress 成功将我的 Wordpress 博客合并到我的 Django 应用程序中Python 包 ( Github )。

我唯一需要做的就是:

  • 将 Wordpress 数据库凭据添加到 Django 设置,
  • 将包的 URLconf 包含到 urls.py 中,
  • override the package templates以按照我想要的方式显示帖子。
<小时/>

但是,如果 Wordpress 数据库恰好离线,我会收到 Python 异常。

OperationalError: (2003, "Can't connect to MySQL server on '10.0.2.2' (110)")

Python 代码是包的一部分,因此不在我的代码中,那么我应该在哪里处理异常才能显示错误消息?

最佳答案

为什么不让您的 500.html 模板只显示您想要的错误消息?

否则,您可以创建一个中间件来捕获此错误:

from django.shortcuts import render

class CatchOperationalError(object):
def process_exception(self, request, exception):
if type(exception).__name__ == 'OperationalError': # replace with proper isinstance
return render(request, 'wordpress_down.html')

https://docs.djangoproject.com/en/dev/topics/http/middleware/#process_exception

另一种选择是将每个单独的 View 包装在 try/except 中。

关于python - 处理 Python 包中未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839018/

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