Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】at_exit()関数の使い方

at_exit関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

at_exit関数は、Rubyプログラムの実行が正常に終了する直前に、あらかじめ登録された特定の処理を実行する関数です。この関数は、プログラム内の全ての処理が完了し、Rubyインタプリタがシャットダウンの準備を始める直前のタイミングで呼び出されます。通常、at_exitにはブロックを渡して使用し、そのブロック内に記述されたコードが実行されます。

複数のat_exitブロックをプログラム内で登録することも可能です。その場合、登録されたブロックは、登録された順序とは逆の順序で実行されるという特徴があります。これにより、最も新しいタイミングで登録された処理が、古い処理よりも後に実行されるため、後から設定されたリソースのクリーンアップなどを行う際に便利です。

この機能は、プログラムが使用したファイルやデータベース接続などのリソースを確実に解放したい場合や、プログラムの終了時に特定のログを出力したい場合などに特に役立ちます。例えば、プログラムが一時的に作成したファイルを削除したり、開いていたネットワーク接続を閉じたりといった、最終的なクリーンアップ処理を確実に行うために利用されます。

ただし、at_exitに登録された処理は、exit!メソッドによるプログラムの強制終了時には実行されません。また、プログラムが外部からの強制終了(例: キーボード割り込み)や、致命的なエラーによって異常終了した場合にも実行されないことがあります。at_exitは、プログラムが順序通りに正常終了パスを辿った場合にのみ実行されるものと理解してください。

構文(syntax)

1at_exit do
2  # ここにプログラム終了時に実行したい処理を記述します。
3  puts "プログラムが終了しました。"
4end
5
6puts "メイン処理を実行中..."

引数(parameters)

引数なし

引数はありません

戻り値(return)

Proc

at_exitメソッドは、プログラム終了時に実行される処理を登録するためのProcオブジェクトを返します。

関連コンテンツ

関連プログラミング言語