Есть ли вызов функции одной строки, который выходит из программы и отображает сообщение? Я знаю в Perl это просто:
die("Message goes here")
Я устал печатать это:
puts "Message goes here"
exit
Есть ли вызов функции одной строки, который выходит из программы и отображает сообщение? Я знаю в Perl это просто:
die("Message goes here")
Я устал печатать это:
puts "Message goes here"
exit
Функция abort
выполняет это. Например:
abort("Message goes here")
Примечание: сообщение abort
будет записано в STDERR
вместо puts
, которое будет записываться в STDOUT
.
Если вы хотите обозначить фактическую ошибку в коде, вы можете создать исключение RuntimeError
:
raise RuntimeError, 'Message goes here'
Это приведет к печати stacktrace, типа поднятого исключения и сообщения, которое вы предоставили. В зависимости от ваших пользователей, stacktrace может быть слишком страшным, и фактическое сообщение может потеряться в шуме. С другой стороны, если вы умрете из-за фактической ошибки, stacktrace предоставит вам дополнительную информацию для отладки.
Я никогда не слышал о такой функции, но было бы достаточно тривиально реализовать...
def die(msg)
puts msg
exit
end
Затем, если это определено в некотором файле .rb, который вы включаете во все ваши скрипты, вы золотые.... только потому, что он не встроен, не означает, что вы не можете сделать это самостоятельно; -)
Я получил здесь поиск способа выполнения некоторого кода всякий раз, когда заканчивается программа.
Обнаружено это:
Kernel.at_exit { puts "sayonara" }
# do whatever
# [...]
# call #exit or #abort or just let the program end
# calling #exit! will skip the call
Вызывается несколько раз для регистрации нескольких обработчиков.