Rubin at_exit Exit-Status
Frage
Kann ich selbst Prozess Exit-Status in at_exit Block bestimmen?
at_exit do
if this_process_status.success?
print 'Success'
else
print 'Failure'
end
end
Lösung 2
mit Idee von 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
Andere Tipps
Obwohl die Dokumentation über das wirklich dünn ist, $! gesetzt, um die letzte Ausnahme zu sein, die, nach einem Ausgang () aufrufen, ist dies eine Systemexit Ausnahme auftritt. diese beiden zusammen setzen Sie diese:
at_exit do
if ($!.success?)
print 'Success'
else
print 'Failure'
end
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow