如何在多个文件中定义自定义异常



因此,我有一个Python项目,它被拆分到多个文件中(以保持我的理智(,我正试图在另一个文件中使用一个文件定义的自定义异常。基本上,我有a.pyb.pya.py包含由a.py中的函数引发的自定义异常(customException(。

a.py:

class customException(Exception):
[irrelevant error handling]
def aFunction():
if [something]:
raise customException
return [stuff]

周围的代码是无关的(我希望,否则我会有一个更奇怪的问题(,所以我没有包含它。然后我将a.py导入b.py(它们在同一目录中(以使用aFunction:

b.py:

import a.py
try:
var = a.aFunction()
except customException:
var = [something else]

当我在a.py将引发customException的情况下运行b.py时,我得到了预期的a.customException错误,但也得到了NameError: name 'customException' is not defined错误。

如何在b.py中定义customException

编辑:Paul M.的解决方案对我很有效,以防其他人在寻找解决方案时发现。再次感谢保罗和所有回答的人!

您只需要通过从导入a的模块中调用a.customException来限定customException,如下所示:

a.py:

class customException(Exception):
[irrelevant error handling]
def aFunction():
if [something]:
raise customException
return [stuff]

b.py:

import a
try:
var = a.aFunction()
except a.customException:
var = [something else]

最新更新