我正在使用stomp.py库通过网络获取 JSON 消息。我已经改编了他们在此处给出的简单示例,该示例使用回调来提供消息处理。
但是当我修改那个回调时,我犯了一个简单的错误——例如,我在尝试解析我的 JSON 字符串时调用了 json.load() 而不是 json.loads()。
class MyListener(object):
def on_message(self, headers, message):
data = json.load(message) ## Should be .loads() for a string!
通常这会很好 - 它会出现 AttributeError 并且我会看到回溯。但在这种情况下,Python 会打印:
找不到记录器“stomp.py”的处理程序
...没有追溯,没有崩溃,仅此而已。调试并找出我做错了什么非常令人困惑!我期待至少正常的追溯如下:
Traceback (most recent call last):
File "./ncl/stomp.py-3.1.3/stompJSONParser.py", line 32, in <module>
[etc etc ...]
...而不是让整个听众感到厌烦。我想这是因为那发生在不同的线程上?
现在我已经解决了它就像回调中的一种运行时错误,我至少知道当它出错时我做错了什么 - 但如果它只是为我犯的每一个错误喷出那个错误而不是给我某种有用的消息,它使编码有点困难。
这是什么原因造成的?我能做些什么来获得常规的、更详细的回溯?