模块初始化出现异常时会发生什么
What happens when an exception occurs in a module initialization
我有一个模块,在这个模块中,我在导入模块后立即初始化一些变量。
my_mobule.py:
def _build_service():
# ...do some stuffs
_service = _build_service()
在这种情况下,如果 _build_service
方法引发异常会发生什么情况?我的模块如何从异常中恢复并尝试再次调用 _build_service
?
谢谢大家
这与您调用引发异常的函数时的行为非常相似 - 如果您不在模块本身中处理异常,那么它将简单地将堆栈提升到导入您的模块的任何人。
看起来像这样:
>>> import my_mobule # sic
UhohError: something went wrong
如果你有机会在模块中处理它,你可以这样做:
try:
_service = _build_service()
except UhohError:
# your handling code here
我有一个模块,在这个模块中,我在导入模块后立即初始化一些变量。
my_mobule.py:
def _build_service():
# ...do some stuffs
_service = _build_service()
在这种情况下,如果 _build_service
方法引发异常会发生什么情况?我的模块如何从异常中恢复并尝试再次调用 _build_service
?
谢谢大家
这与您调用引发异常的函数时的行为非常相似 - 如果您不在模块本身中处理异常,那么它将简单地将堆栈提升到导入您的模块的任何人。
看起来像这样:
>>> import my_mobule # sic
UhohError: something went wrong
如果你有机会在模块中处理它,你可以这样做:
try:
_service = _build_service()
except UhohError:
# your handling code here