[파이썬] `sys.exit()`: 스크립트 종료

파이썬 스크립트를 작성하다보면 종료가 필요한 경우가 발생할 수 있습니다. 이때 sys.exit() 함수를 사용하여 스크립트를 강제로 종료할 수 있습니다. sys.exit()는 파이썬의 sys 모듈에 정의된 함수로, 스크립트의 실행을 즉시 중지하고 종료하는 역할을 합니다.

sys.exit()를 호출하면 현재 실행 중인 스크립트는 즉시 중단되고 메모리 자원이 해제됩니다. 따라서 sys.exit()를 호출하는 위치 이후의 코드는 실행되지 않습니다.

기본적인 사용법

sys.exit() 함수는 파라미터로 종료 코드(exit code)를 전달할 수 있습니다. 일반적으로 0은 성공적인 종료를 의미하고, 0이 아닌 값을 전달하면 비정상적인 종료를 의미합니다. 종료 코드는 다른 프로그램이나 스크립트에서 이전 스크립트의 실행 결과를 확인하는 데 사용될 수 있습니다.

다음은 sys.exit() 함수의 기본적인 사용법입니다:

import sys

sys.exit(0)  # 성공적인 종료

위의 예제에서는 sys 모듈을 import하여 sys.exit() 함수를 사용하고 있습니다. 0을 전달하여 성공적인 종료를 의미하게 됩니다.

예외 처리와 함께 사용하기

sys.exit() 함수는 주로 예외 처리와 함께 사용됩니다. 예외가 발생했을 때 스크립트를 종료하고자 할 때, sys.exit()를 이용하여 예외 처리 블록 안에서 스크립트를 종료할 수 있습니다.

다음은 예외 처리와 sys.exit()를 함께 사용한 예입니다:

import sys

try:
    # 예외가 발생할 수 있는 코드
except Exception as e:
    # 예외 처리 코드
    print(f"에러 발생: {e}")
    sys.exit(1)  # 비정상적인 종료

위의 예제에서는 try 블록 안에서 예외가 발생할 수 있는 코드를 실행하고, 예외가 발생하면 except 블록으로 넘어가서 예외 처리 코드가 실행됩니다. print() 함수로 에러 메시지를 출력하고, sys.exit(1)을 호출하여 비정상적인 종료를 의미하는 종료 코드 1을 전달합니다.

스크립트 종료 vs. 함수 종료

sys.exit() 함수는 스크립트 전체를 종료하는 동작을 수행합니다. 따라서 해당 스크립트 내에서 sys.exit()가 호출되면 이후의 코드는 실행되지 않습니다.

반면, 함수 내에서 return문을 사용하여 함수를 종료하게 되면 스크립트 전체가 종료되지 않습니다. 함수 내에서 return문이 실행되면 해당 함수가 호출된 곳으로 돌아가고, 함수 호출 위치 이후의 코드가 실행됩니다.

import sys

def my_function():
    print("함수 내 코드 실행")
    sys.exit()  # 스크립트 종료

print("함수 호출 전 코드 실행")

my_function()

print("함수 호출 후 코드 실행")

위의 예제에서는 함수가 호출되기 전과 후에 각각 print() 함수로 메시지를 출력하고 있습니다. my_function() 함수 내에서 sys.exit()가 호출되면 함수 실행 도중에 스크립트가 종료되기 때문에 “함수 호출 후 코드 실행” 부분은 출력되지 않습니다.


sys.exit() 함수는 파이썬 스크립트 내에서 필요한 시점에 강제로 종료하는 데 사용됩니다. 주로 예외 처리와 함께 사용하여 오류 상황에 대처하고 스크립트를 안전하게 종료할 수 있습니다.