1

然后在 python 中使用 try catch 可以捕获错误并将它们分配给带有as关键字的变量

try
  do something..
except IOError as e:
  do something with e..

然而,然后在不知道错误类型的情况下尝试做同样的事情 python 抱怨语法。

try
  do something..
except as e:
  do something with e..

有什么方法可以捕获默认错误并将其分配给变量?

4

3 回答 3

8

就在这里。所有异常都派生自Exception该类。

所以你可以这样做:

try:
    doSomething()
except Exception as e:
    doSomethingWithException(e)

这是一种包罗万象的线。

于 2012-06-09T18:37:16.067 回答
0

您也可以使用 sys.exc_info()。这允许您使用相同的代码处理 Python 2.x 和 Python 3.x 上的异​​常。

于 2012-06-09T18:54:53.130 回答
0

常规方式是:

try:
    do_whatever()
except Exception as e:
    handle_it()

尽管捕获如此广泛的异常是不明智的 - 最好捕获您知道可以处理的特定异常并让其他任何东西传播。

值得注意的是,KeyboardInterrupt 和 SystemExit 继承自 BaseException 而不是 Exception,因此如果您希望满足这些要求,这些将不会被捕获,但这不应该成为问题,因为无论如何它们都应该在顶层处理。

于 2012-06-09T19:17:17.370 回答