2016-08-05 209 views
1

我有一個模塊,並且在該模塊中,我在模塊導入後立即初始化一些變量。當模塊初始化發生異常時會發生什麼

my_mobule.py:

def _build_service(): 
    # ...do some stuffs 

_service = _build_service() 

在這種情況下,如果_build_service方法會引發異常會發生什麼?以及我的模塊如何從異常中恢復並嘗試再次調用_build_service

謝謝你們。

+0

這似乎是第一步,之前發佈這個問題,是爲了引發異常,看看會發生什麼。 – larsks

+0

你應該處理異常,並提供一些默認值或使用不變量... –

+0

@larsks我這樣做,這就是爲什麼我在這裏問。因爲我看到了這個異常,但是我不知道python會嘗試再次導入這個模塊,因爲我的應用一直在運行。這是我的疑問。 –

回答

1

這與你應該調用一個引發異常的函數非常相似 - 如果你沒有在模塊本身中處理異常,那麼它將會簡單地將堆棧上升到導入模塊的人。

這將是這樣的:

>>> import my_mobule # sic 
UhohError: something went wrong 

如果你有機會來處理它的模塊中,你可以做它像這樣:

try: 
    _service = _build_service() 
except UhohError: 
    # your handling code here 
相關問題