Python의 sys.exit()
는 소스코드 내에서 프로그램을 종료(=pvm종료)시키기 위해 호출하는 함수임.
- 호출(call)할 때, 종료 상태 코드를 argument로 전달받음.
- 해당 종료상태코드는
sys
모듈을 통해 os로 넘어감.
사용가능한 argument의 종류는 다음과 같음:
1. 정수 (Integer)
- 0:
- 정상 종료를 나타냄.
- 즉,
sys.exit(0)
은 프로그램이 정상적으로 종료되었음을 os에 알림.
- 그 외의 값:
- 에러 종료를 나타냄.
- 일반적으로 오류가 발생했을 때
1
이상의 값을 사용함. - 오류시 0 이외의 어떤 값이든 가능하지만, 관례상
1
이 자주 사용됨. - 예를 들어,
sys.exit(1)
은 프로그램이 오류로 인해 종료되었음을 의미함.
2. None
None
값을 전달하면 기본적으로sys.exit(0)
과 동일하게 취급되어 정상 종료로 간주됨.- 즉,
sys.exit()
또는sys.exit(None)
은 프로그램을 정상적으로 종료하는 것과 마찬가지임.
3. 문자열 (String)
- 문자열을 argument(인수)로 전달하면, 해당 문자열이 표준 오류 스트림(
stderr
)에 출력되고 이 후에 프로그램이 종료됨. - 이 경우에도 종료 상태 코드는
1
로 설정됨. - 예를 들어,
sys.exit("Error: Invalid input")
은- 프로그램을 종료하면서
- "Error: Invalid input"이라는 문자열을
stderr
에 출력함.
4. 객체 (Object)
- Object를 argument로 전달할 수 있음.
- 전달된 object가 string으로 변환될 수 있는 경우(
__str__
이 동작)엔 변환된 문자열이 출력된 후 종료. - 문자열로 변환이 불가능하면 그냥 종료됨.
- 이 경우에도 비정상 종료로 간주되어 상태 코드가
1
로 os에 전달됨.
사용 예시:
import sys
# 정상 종료
sys.exit(0) # 또는 sys.exit()나 sys.exit(None)
# 오류 종료
sys.exit(1)
# 오류 메시지 출력 후 종료
sys.exit("An error occurred.")
terminal의 shell을 통해 위의 코드들을 실행하는 python 스크립트를 실행하고 나서
Windows의 cmd prompt 에서는 %ERRORLEVEL% 을 echo 명령어로 출력하면 종료상태코드를 볼 수 있고,
bash, zsh 등의 경우에는 $? 를 사용하면 된다.
같이 읽어보면 좋은 자료들
sys
모듈 관점에서의 설명이 필요하면 다음 글에서 exit부분을 참고: https://ds31x.tistory.com/104
728x90
'Python' 카테고리의 다른 글
[Etc] SW Version: Semantic Versioning + package.version (0) | 2024.09.19 |
---|---|
[Summary] NumPy(Numerical Python) (1) | 2024.09.12 |
[Py] Namespace Package (0) | 2024.09.11 |
[CV] Chessboard관련 함수들: OpenCV (0) | 2024.09.10 |
[NumPy] ravel() 메서드 with flatten() 메서드 (0) | 2024.09.09 |