我可以在at_exit块确定自我处理退出状态吗?
at_exit do
if this_process_status.success?
print 'Success'
else
print 'Failure'
end
end
答案 0 :(得分:17)
虽然关于此的文档很薄,但是!设置为发生的最后一个异常,并且在exit()调用之后,这是一个SystemExit异常。将这两者放在一起就可以得到:
at_exit do
if ($!.success?)
print 'Success'
else
print 'Failure'
end
end
答案 1 :(得分:15)
使用tadman
中的提示at_exit do
if $!.nil? || $!.is_a?(SystemExit) && $!.success?
print 'success'
else
code = $!.is_a?(SystemExit) ? $!.status : 1
print "failure with code #{code}"
end
end