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

【Ruby3.x】SignalException::signo()メソッドの使い方

signoメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

signoメソッドは、シグナルに関連する例外であるSignalExceptionが発生した際に、どのシグナルによってその例外が引き起こされたかを示すシグナル番号を取得するメソッドです。SignalExceptionは、Rubyプログラムがオペレーティングシステム(OS)からのシグナルを受け取ったときに発生する特別な例外です。シグナルとは、OSがプロセスに対して何らかのイベント発生を通知するための仕組みで、例えばユーザーがCtrl+Cを押した際の割り込み(INTシグナル)や、プログラム終了を促す(TERMシグナル)などがあります。これらのシグナルは、プログラムの実行を中断させたり、終了させたりする可能性があります。

signoメソッドは、このSignalExceptionオブジェクトから、その例外を引き起こしたシグナルの種類を、システムで定義された整数値のシグナル番号として取り出すことができます。このシグナル番号は、オペレーティングシステムによって一意に割り当てられており、例えばSIGINTは2、SIGTERMは15といった具体的な数値で示されます。このメソッドを利用することで、プログラムの例外処理において、SignalExceptionが捕捉された際に、それがどのシグナルによって発生したのかを具体的に特定し、シグナルの種類に応じたきめ細やかな処理を実装することが可能になります。例えば、Ctrl+Cによる中断と、外部からの終了要求とで異なるクリーンアップ処理を行う、といった制御が考えられます。システムの状態を把握し、堅牢なアプリケーションを開発する上で重要な情報を提供するメソッドです。

構文(syntax)

1SignalException.new(signal_number).signo

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

SignalExceptionクラスのsignoメソッドは、捕捉されたシグナルの番号を整数で返します。

関連コンテンツ

関連プログラミング言語