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
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top