我正在尝试使用rope包进行一些重构。根据代码的不同,它可能会引发异常,并且有十多个绳索异常。

我不想做

from rope.base.exceptions import *

try:
    # do something
except (AttributeNotFoundError, ModuleDecodeError,
        ..., ..., ..., RefactoringError) as e:
     # do something else


我只想捕捉所有绳索异常,像这样

import rope

try:
    # do something
except rope.base.exceptions.*:
    # do something else


如何捕获特定模块中的所有异常?

最佳答案

只要抓住所有例外的基础:

In [5]: import rope.base.exceptions as rbe
In [6]: try:
   ...:     raise rbe.AttributeNotFoundError
   ...: except rbe.RopeError, e:
   ...:     print "RopeError -", e
   ...:

RopeError!

09-08 03:20