任何时候我的程序停止执行(无论是通过 cmd-c 关闭还是遇到异常),我都想采取一些措施来正确关闭。
当我执行 cmd-c 时,我收到信号 TERM。当程序遇到引发的异常时发送什么信号?我如何使用 Signal.trap(...) 捕获它?
最佳答案
您可以将代码包装在 begin-ensure-end
block 中。它会捕获异常和 CTRL-C。 (您可以在 ensure
之前添加一个 rescue 子句)。
begin
sleep 10 #try CTRL-C here
raise "kaboom" #RuntimeError
ensure
puts "This must be printed no matter what."
end
关于ruby - 当引发异常并且程序停止执行时,哪个系统信号被发送到 ruby 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436501/