2025-03-23 05:00:06

如何创建退出消息

是否存在退出程序并显示消息的一行函数调用?我知道在Perl中,它就像:

die("Message goes here")

我厌倦了这样打字:

puts "Message goes here"
exit

我从来没有听说过这样的函数,但它实现起来足够琐碎…

def die(msg)
  puts msg
  exit
end

然后,如果您在所有脚本中包含的某个.rb文件中定义了该文件,那么您将获得....只是因为它不是内置的,并不意味着你不能自己做;-)


如果你想在你的代码中表示一个实际的错误,你可以引发一个RuntimeError异常:

raise RuntimeError, 'Message goes here'

这将打印一个堆栈跟踪,被引发的异常类型和您提供的消息。根据用户的不同,堆栈跟踪可能太可怕了,实际的消息可能会被淹没在噪音中。另一方面,如果您因实际错误而死亡,则stacktrace将为您提供额外的调试信息。


abort函数可以做到这一点。例如:

abort("Message goes here")

注意:abort消息将被写入STDERR,而put消息将被写入STDOUT。


我在这里寻找一种方法来执行一些代码每当程序结束。 发现了这个:

Kernel.at_exit { puts "sayonara" }
# do whatever
# [...]
# call #exit or #abort or just let the program end
# calling #exit! will skip the call

多次调用将注册多个处理程序。