Как создать сообщение о выходе - PullRequest
207 голосов
/ 27 августа 2008

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

die("Message goes here")

Я устал набирать это:

puts "Message goes here"
exit

Ответы [ 4 ]

354 голосов
/ 17 сентября 2008

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

abort("Message goes here")

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

23 голосов
/ 27 августа 2008

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

raise RuntimeError, 'Message goes here'

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

2 голосов
/ 19 апреля 2017

Я пришел сюда в поисках способа выполнения некоторого кода всякий раз, когда программа заканчивается.
Нашел это :

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

При вызове несколько раз будет зарегистрировано несколько обработчиков.

2 голосов
/ 27 августа 2008

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

def die(msg)
  puts msg
  exit
end

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...