SignalException 클래스
SignalException 클래스
프로세스에 시그널(signal)이 도착했을 때 Ruby가 던지는 예외가 SignalException이에요. 운영체제 차원의 신호가 코드 위에서 예외로 나타난다고 보면 돼요.
출처: Ruby 4.0 API
본문
시그널이 수신되면 SignalException이 발생해요.
begin
Process.kill('HUP',Process.pid)
sleep # wait for receiver to handle signal sent by Process.kill
rescue SignalException => e
puts "received Exception #{e}"
end
produces:
received Exception SIGHUP
여기서 Process.kill('HUP', Process.pid)가 자기 자신에게 HUP 시그널을 보내고, 그 시그널을 Ruby가 받아서 예외로 바꿔주는 거예요. 예외 객체의 문자열 표현이 SIGHUP처럼 실제 시그널 이름을 담고 있는 걸 볼 수 있죠.
Public Class Methods
new(sig_name) → signal_exception
SignalException 객체를 새로 만들어요. sig_name은 알려진 시그널 이름이어야 해요.
SignalException.new("INT") #=> #<SignalException: SIGINT>
signo → num
시그널 번호를 반환해요.
SignalException.new("INT").signo #=> 2