如何在Python中捕获异常信息?

8

我希望得到这样的形式

try:
  # code
except *, error_message:
  print(error_message)

我希望拥有一个通用的except代码块,可以捕获所有类型的异常并输出错误信息,例如"ZeroDivisionError: division by zero"。在Python中是否可能实现?

如果我使用以下代码,可以捕获所有异常,但是我将得不到错误信息。

try:
  # code
except:
  print("Exception occurred")

1
你有没有尝试阅读关于异常的文档?它绝对在里面。 - roganjosh
2个回答

14

试一试:

except Exception as e:
    print(str(e))

5
这将允许您检索任何源自Exception基类的异常消息:
try:
    raise Exception('An error has occurred.')
except Exception as ex:
    print(str(ex))

AttributeError: 'KeyError' object has no attribute 'message' - bart-kosmala
@bart-kosmala 抱歉,这在Python 2.x中曾经有效,但在Python 3.x中不再有效。我已经更新了我的答案,请撤回您的负评。 - Óscar López

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接