Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > SignalExceptionクラス

class SignalException

クラスの継承リスト: SignalException < Exception < Object < Kernel < BasicObject

要約

捕捉していないシグナルを受け取ったときに発生します。

実際に発生したシグナル名は、 Exception#message から 「"SIG" + シグナル名」という形で得られます。

デフォルトの状態では、 以下のシグナルが SignalException を発生させます。

なお、SIGINT シグナルを受けた場合は SignalException の下位クラスである Interrupt が発生します。

目次

特異メソッド
new
インスタンスメソッド
signm signo

特異メソッド

new(sig_number) -> SignalException[permalink][rdoc]
new(sig_name) -> SignalException
new(sig_number, sig_name) -> SignalException

引数で指定したシグナルに関する SignalException オブジェクトを生成して返 します。

引数は Signal.#list に含まれるもののいずれかを指定する必要があり ます。

[PARAM] sig_name:
シグナル名を Symbol オブジェクト、文字列のいずれ かで指定します。
[PARAM] sig_number:
シグナル番号を指定します。整数以外のオブジェクトを指 定した場合は to_int メソッドによる暗黙の型変換を試み ます。


signal_number = Signal.list["INT"]
se = SignalException.new(signal_number) # => #<SignalException: SIGINT>
se.signo # => 2


se = SignalException.new("INT") # => #<SignalException: SIGINT>
se.signm # => "SIGINT"

[SEE_ALSO] Signal.#list

インスタンスメソッド

signm -> String[permalink][rdoc]

self.message のエイリアスです。



begin
  Process.kill('HUP', Process.pid)
  sleep
rescue SignalException => e
  puts e.signm  # => SIGHUP
end
signo -> Integer[permalink][rdoc]

self のシグナル番号を返します。



p Signal.signame(1) # => "HUP"
begin
  Process.kill('HUP', Process.pid)
  sleep
rescue SignalException => e
  p e.signo # => 1
end