1

我有一个带有自定义异常类的脚本,格式如下:

class DirectionError(Exception):
    pass

我在同一个脚本中使用了以下形式的函数:

def func1(x):
    if x == 1:
        raise DirectionError

我将函数调用以以下形式放入 try/except/except 块中:

try:
    func1(2)
except DirectionError:
    logging.debug("Custom error message")
    sys.exit()
except:
    logging.debug(traceback.format_exc())

随后,我将这些函数移到了单独的 mytools.py 文件中。我将 mytools.py 文件导入到我的主要 python 脚本中。

我将自定义异常类移动到 mytools.py 文件中,但异常没有到达主 python 脚本。

如何在 mytools.py 文件中获取这些函数以将异常发送回我的主 python 脚本中的 try/except 块?

谢谢。

4

2 回答 2

2

这取决于您如何导入 mytools。如果您将其导入为

import mytools

然后改变:

except DirectionError:

至:

except mytools.DirectionError:

应该管用。

如果您只导入了您的函数:

from mytools import func1

将其更改为:

from mytools import func1, DirectionError

基本上,您需要将 DirectionError 类导入您的主代码并正确引用它。

此外,仅当您调用 func1(1) 并且您正在调用 func1(2) 时才会引发异常。

于 2012-04-12T15:32:28.490 回答
0

在其自己的脚本文件中定义异常,然后将该文件导入 mytools.py 和您的主脚本

于 2012-04-12T15:23:36.147 回答