質問

私はat_exitブロックに自己プロセスの終了ステータスを決定することはできますか?

at_exit do
  if this_process_status.success?
    print 'Success'
  else
    print 'Failure'
  end
end
役に立ちましたか?

解決 2

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

他のヒント

この上のドキュメントは本当に薄いですが、$!発生した最後の例外となるように設定し、終了後に()これはSystemExit例外で呼び出しています。

:あなたがこれを取得一緒にそれらの2を置きます
at_exit do
  if ($!.success?)
    print 'Success'
  else
    print 'Failure'
  end
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top