SystemExit
sys.exit()が呼ばれたときに発生する、プログラムを終了させるための特別な例外です。
原因
コード内で明示的にsys.exit()を呼び出すことで発生します。バグではなく、意図的にプログラムを終わらせるための仕組みです。
エラーになるコード例
import sys
print('処理を開始します')
sys.exit('エラーのため終了します')
print('この行は実行されません')修正版
import sys
try:
sys.exit('終了理由')
except SystemExit as e:
print(f'終了処理をキャッチしました: {e}')よくある間違い
- sys.exit()が「エラー」だと思い、except Exceptionで無意識にキャッチしてしまう(SystemExitはExceptionを継承していないため、通常のexcept Exceptionでは捕まりません)
- 本当にプログラムを終了させたいのか、単に関数から抜けたいだけなのかを混同する