![](/img/trans.png)
[英]How can I make sure that two function calls are always made consecutively with multiple threads in Python?
[英]How to make sure that I always get the message of an exception in Python in a safe way?
在Java中,获取异常消息与始终调用特定方法一样容易。 但是在Python中,这似乎是不可能的。 有时这样做可以起作用:
try:
# Code
pass
except Exception as e:
print(e.message)
但是有时捕获这样的异常最终会引发另一个异常,因为message属性不存在。 具有讽刺意味的悲伤。 尝试控制错误会产生另一个错误...
有时这样做可以起作用:
print(e.msg)
但是有时它还会引发缺少属性异常。
有时这也可以:
print(str(e))
但是有时它会打印一个空字符串,因此根本没用。
我什至听说它取决于您使用的库以及具体的Exception实现。 对我来说那真是愚蠢。 如果我不知道打印错误消息所具有的属性是什么,该如何处理打印发生的错误?
但是有时它会打印一个空字符串,因此根本没用。
是的,当有人在没有消息的情况下引发异常时,就会发生这种情况。 (您正在使用的lib的)怪人作者。
通常,您可以使用repr
,它应该是明确的,并且如果未覆盖,则至少包含有关异常类型的信息:
try:
0/0
except Exception as exc:
print(repr(exc))
raise
如果您需要整个回溯,则可以使用
import traceback
try:
0/0
except Exception:
print(traceback.format_exc())
raise
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.