2017-12-04 25 views
2

Python documentation에서는 외부 수준에서 종료 호출을 인터셉트 할 수 있다고합니다. 그렇다면 "외부 수준에서 가로 채기"는 실제로 여기서 무엇을 의미합니까? 보다 구체적으로 말하면 통화를 차단하는 것이 무엇입니까?sys.exit 문서에서 파이썬 호출을 인터셉트하는 것은 무엇을 의미합니까?

+1

미묘한 의미 론적 노드 : 문서는 'exit'에 대한 호출이 아닌 exit * attempt *를 가로채는 것을 가리 킵니다. 그것은 당신이 가로 채거나 잡을 수있는'exit'에 의해 제기 된 예외입니다. – chepner

답변

2

즉, except SystemExit은 제기 된 예외를 포착하여 파이썬을 종료 할 때 시도 된 호출을 가로채는 것을 의미합니다. sys.exit은 처리 할 수있는 SystemExit을 발생시켜 구현됩니다. 적절한 except 절을 사용

:

from sys import exit 
try: 
    exit("Exiting") 
except SystemExit as e: 
    print("Well, no you're not.") 

작품 잘하고 실행을 계속된다. 너는 그것을 가로 챘다.

@chepner가 지적한대로 호출이 가로채는 중입니다. exit에 대한 호출이 완료되었습니다. 결과 예외는 사용자가 제공하는 예외 핸들러에 의해 인터셉트됩니다.

+0

즉, 차단되지 않은 상태에서 통화가 끝나고 프로그램이 종료된다는 것을 의미합니다. –

+0

@ApurvaKunkulol. –