我的模块在发生不一定是坏的事情时会引发某些异常。但是,在导入模块时,我希望这样做以导入所有模块:
from MyModule import MyModuleExceptions
目前,我生成异常的方法是通过以下函数:
def gen_exceptions():
EXCEPTION_TYPES = (
"FirstException", # scenario 1
"SecondException", # scenario 2
"UnexpectedException" # Everything else
)
MyModuleExceptionsFactory = namedtuple("exceptions", EXCEPTION_TYPES)
exceptions = {key: type(key, (Exception,), {}) for key in EXCEPTION_TYPES}
return MyModuleExceptionsFactory(**exceptions)
MyModuleExceptions = gen_exceptions()
在我的模块中,我可以将其用作:
try:
# do stuff
except MyModuleExceptions.FirstException:
# Handle scenario 1
except Exception:
# Everything else
正确的方法是“Pythonic”吗?还是有一个我应该遵循的既定惯例
目前没有回答
相关问题 更多 >
编程相关推荐