为什么 Django Channels 的 AsyncHttpConsumer 处理程序中没有显示异常?

时间:2021-02-05 16:33:33

标签: python django

我使用的是带有频道 2.3.0 的 Django 2.2.10。

我有一个如下所示的 consumer.py:

from channels.generic.http import AsyncHttpConsumer
import json

class LongPollConsumer(AsyncHttpConsumer):
    async def handle(self, body):
        await self.send_headers(headers=[
            (b"Content-Type", b"application/json"),
        ])

        print("Raising exception...")
        raise Exception("ERROR")
        print("Exception raised")

        await self.send_body(json.dumps({"status": "all good"}).encode("utf-8"))

当我运行 Django 并使用浏览器连接到 URL 时,Django 日志显示“引发异常...”,然后停止。没有实际异常的追溯。

如果我看不到任何异常,就会使开发变得困难。有没有办法让它们出现?

编辑:似乎如果您将代码包装在您的 handle() 方法中:

try:
    ...
except Exception:
    import traceback
    traceback.print_exc()

日志再次显示异常。仍然不知道为什么这是必要的。

0 个答案:

没有答案
相关问题