是否有一个单行函数调用退出程序并显示一条消息? 我知道在Perl中它很简单:
1
| die("Message goes here") |
我厌倦了这样输入:
1 2
| puts"Message goes here"
exit |
abort函数执行此操作。例如:
1
| abort("Message goes here") |
注意:abort消息将被写入STDERR,而puts消息将被写入STDOUT。
如果要在代码中表示实际错误,则可以引发RuntimeError异常:
1
| raise RuntimeError, 'Message goes here' |
这将打印一个堆栈跟踪,引发的异常类型以及您提供的消息。根据您的用户,堆栈跟踪可能会太吓人,实际的消息可能会在噪音中丢失。另一方面,如果您因实际错误而死亡,那么堆栈跟踪将为您提供更多信息以进行调试。
我在这里寻找一种在程序结束时执行一些代码的方法。
发现了这一点:
1 2 3 4 5
| Kernel.at_exit { puts"sayonara" }
# do whatever
# [...]
# call #exit or #abort or just let the program end
# calling #exit! will skip the call |
多次调用将注册多个处理程序。
我从来没有听说过这样的功能,但是实现起来很简单……
1 2 3 4
| def die(msg)
puts msg
exit
end |
然后,如果在包含在所有脚本中的某个.rb文件中定义了该文件,那么您会很高兴....仅仅因为它不是内置的,并不意味着您自己不能这样做;-)