要約
捕捉していないシグナルを受け取ったときに発生します。
実際に発生したシグナル名は、 Exception#message から「"SIG" + シグナル名」という形で得られます。
デフォルトの状態では、以下のシグナルが SignalException を発生させます。
- SIGALRM
- SIGHUP
- SIGINT (※ただし以下参照)
- SIGQUIT
- SIGUSR1
- SIGUSR2
- SIGTERM
なお、SIGINT シグナルを受けた場合は SignalException の下位クラスである Interrupt が発生します。
目次
継承しているメソッド
- Exceptionから継承しているメソッド
特異メソッド
new(sig_number) -> SignalException
[permalink][rdoc][edit]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][edit]-
self.message のエイリアスです。
begin Process.kill('HUP', Process.pid) sleep rescue SignalException => e puts e.signm # => SIGHUP end
signo -> Integer
[permalink][rdoc][edit]-
self のシグナル番号を返します。
p Signal.signame(1) # => "HUP" begin Process.kill('HUP', Process.pid) sleep rescue SignalException => e p e.signo # => 1 end