在python中从子子模块捕获明确的异常

0 投票
1 回答
671 浏览
提问于 2025-04-15 22:47

我有三个文件。一个是xxx,它引入了xxx2,而xxx2又引入了xxx3,结果在xxx3里出现了一个叫做OppsError的错误。

xxx3.py:

class OppsError(Exception):pass

def go():
    raise OppsError()

xxx2.py:

import xxx3
xxx3.go()

xxx.py:

try:
    import xxx2
except xxx3.OppsError:
    print 'ops'

当我运行xxx.py的时候,出现了一个错误:NameError: name 'xxx3' is not defined。那么,只有在xxx里引入xxx3才能捕捉到这个OppsError吗?

1 个回答

1

据我所知,除非你愿意把OppsError换成一个已经被xxx知道的内置异常,或者捕捉一个更通用的异常,而不是直接捕捉OppsError(因为OppsError是从这个更通用的异常派生出来的)。

撰写回答