2016-08-05 6 views
1

모듈이 있고 모듈을 가져 오는 즉시이 모듈에서 일부 변수를 초기화합니다.모듈 초기화에서 예외가 발생하면 어떻게됩니까?

my_mobule.py 다음 _build_service 방법은 예외가 발생하는 경우이 경우

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

_service = _build_service() 

는, 어떤 일이 일어날 것인가? 그리고 내 모듈이 예외에서 복구하여 _build_service을 다시 호출 할 수 있습니까?

감사합니다.

+0

그것은 전에 첫 번째 단계는 것 같아 이 질문을 게시하면 예외를 발생시키고 어떤 일이 발생하는지 확인하는 것입니다. – larsks

+0

예외를 처리하고 기본값을 제공하거나 불변 값을 사용해야합니다 ... –

+0

@larsks 그랬습니다. 그래서 여기에서 묻습니다. 왜냐하면 나는 예외를 보았지만, 파이썬은이 모듈을 다시 가져 오려고 시도할지 모른다. 내 앱이 계속 실행되고 있기 때문이다. 그건 내 의심이다. –

답변

1

예외를 발생시키는 함수를 호출해야하는 경우와 매우 비슷합니다. 모듈 자체에서 예외를 처리하지 않으면 모듈을 가져온 사람에게 스택을 간단하게 올릴 수 있습니다. 같을 것이다

: 당신이 모듈에서 처리 할 수있는 기회가 있다면

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

, 당신과 같이 그것을 할 수 :

try: 
    _service = _build_service() 
except UhohError: 
    # your handling code here 
관련 문제