Как создать сообщение о выходе

Есть ли вызов функции одной строки, который выходит из программы и отображает сообщение? Я знаю в Perl это просто:

die("Message goes here")

Я устал печатать это:

puts "Message goes here"
exit

Ответ 1

Функция abort выполняет это. Например:

abort("Message goes here")

Примечание: сообщение abort будет записано в STDERR вместо puts, которое будет записываться в STDOUT.

Ответ 2

Если вы хотите обозначить фактическую ошибку в коде, вы можете создать исключение RuntimeError:

raise RuntimeError, 'Message goes here'

Это приведет к печати stacktrace, типа поднятого исключения и сообщения, которое вы предоставили. В зависимости от ваших пользователей, stacktrace может быть слишком страшным, и фактическое сообщение может потеряться в шуме. С другой стороны, если вы умрете из-за фактической ошибки, stacktrace предоставит вам дополнительную информацию для отладки.

Ответ 3

Я никогда не слышал о такой функции, но было бы достаточно тривиально реализовать...

def die(msg)
  puts msg
  exit
end

Затем, если это определено в некотором файле .rb, который вы включаете во все ваши скрипты, вы золотые.... только потому, что он не встроен, не означает, что вы не можете сделать это самостоятельно; -)

Ответ 4

Я получил здесь поиск способа выполнения некоторого кода всякий раз, когда заканчивается программа.
Обнаружено это:

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

Вызывается несколько раз для регистрации нескольких обработчиков.