signals/exception_construction_parens.rb
tests/_examples/signals/exception_construction_parens.rb in the metorex repository.
by_number = SignalException.new(Signal.list["INT"])
puts(by_number.signm)
puts(by_number.message)
puts(by_number.signo == Signal.list["INT"])
puts(SignalException.new("INT").signm)
puts(SignalException.new("SIGINT").signm)
puts(SignalException.new(:TERM).signm)
puts(SignalException.new(:SIGTERM).signm)
named = SignalException.new(Signal.list["INT"], "custom name")
puts(named.signm)
puts(named.message)
puts(named.signo == Signal.list["INT"])
def rejected
yield
rescue ArgumentError => error
error.message
end
puts(rejected { SignalException.new(100000) })
puts(rejected { SignalException.new("NONEXISTENT") })
puts(rejected { SignalException.new(:NONEXISTENT) })
puts(rejected { SignalException.new(Object.new) })
puts(rejected { SignalException.new("INT", "name") })
interrupt = Interrupt.new("still a message")
puts(interrupt.signm)
puts(interrupt.signo == Signal.list["INT"])
Output:
SIGINT
SIGINT
true
SIGINT
SIGINT
SIGTERM
SIGTERM
custom name
custom name
true
invalid signal number 100000
invalid signal name NONEXISTENT
invalid signal name NONEXISTENT
bad signal type Object
wrong number of arguments (given 2, expected 1)
still a message
true