Question
Existe-t-il un appel de fonction sur une ligne qui quitte le programme et affiche un message ?Je sais qu'en Perl, c'est aussi simple que :
die("Message goes here")
J'en ai marre de taper ça :
puts "Message goes here"
exit
La solution
Le abort
la fonction fait cela.Par exemple:
abort("Message goes here")
Note:le abort
le message sera écrit à STDERR
par opposition à puts
qui écrira à STDOUT
.
Autres conseils
Si vous souhaitez signaler une erreur réelle dans votre code, vous pouvez générer un RuntimeError
exception:
raise RuntimeError, 'Message goes here'
Cela imprimera une trace de pile, le type de l'exception déclenchée et le message que vous avez fourni.En fonction de vos utilisateurs, un stacktrace peut être trop effrayant et le message réel peut se perdre dans le bruit.D'un autre côté, si vous mourez à cause d'une erreur réelle, un stacktrace vous donnera des informations supplémentaires pour le débogage.
Je n'ai jamais entendu parler d'une telle fonction, mais ce serait assez trivial à implémenter...
def die(msg)
puts msg
exit
end
Ensuite, si cela est défini dans un fichier .rb que vous incluez dans tous vos scripts, vous êtes en or....ce n'est pas parce que ce n'est pas intégré que vous ne pouvez pas le faire vous-même ;-)
Je suis arrivé ici à la recherche d'un moyen d'exécuter du code à la fin du programme.
J'ai trouvé ça:
Kernel.at_exit { puts "sayonara" }
# do whatever
# [...]
# call #exit or #abort or just let the program end
# calling #exit! will skip the call
Appelé plusieurs fois, il enregistrera plusieurs gestionnaires.