Actions
Bug #12302
closedat_exit status status is changed by raising/rescueing a exception in at_exit
Bug #12302:
at_exit status status is changed by raising/rescueing a exception in at_exit
Description
at_exit do
puts "1 #{$!}"
end
at_exit do
puts "2 #{$!}"
raise 'x' rescue nil
end
at_exit do
puts "3 #{$!}"
exit 1
end
Nr 3 runs first and exits 1 ... Nr2 receives the correct exit status ... but using raise/rescue there overrides $!
and Nr 1 thinks it is a clean exit ...
seems semi related to https://bugs.ruby-lang.org/issues/5218 ... ideally the at_exit
block should restore the previous $!
... or give some other way of knowing the exit status like passing it to the block
at_exit do |exception|
...
end
Actions