我使用的是带有频道 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()
日志再次显示异常。仍然不知道为什么这是必要的。