模块初始化出现异常时会发生什么

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