211 votes

Ruby - Message de sortie

Depuis que j'ai reçu une réponse rapide sur la dernière question Ruby que j'ai posée, j'en ai une autre qui me dérange. Y at-il un appel de fonction d'une ligne qui quitte le programme et affiche un message? Je sais en Perl c'est aussi simple que ça:

 die("Message goes here")
 

Essentiellement, je suis juste fatigué de taper ceci:

 puts "Message goes here"
exit
 

367voto

Chris Bunch Points 25857

La fonction 'abort' fait cela. Par exemple:

 abort("Message goes here")
 

Remarque: le message abort sera écrit dans STDERR par opposition à puts qui écrira dans STDOUT .

24voto

Jörg W Mittag Points 153275

Si vous souhaitez indiquer une erreur réelle dans votre code, vous pouvez déclencher une exception RuntimeError :

 raise RuntimeError, 'Message goes here'
 

Cela imprimera une pile, le type de l'exception soulevée et le message que vous avez fourni. En fonction de vos utilisateurs, une pile peut être trop effrayante et le message peut être perdu dans le bruit. D'un autre côté, si vous mourez à cause d'une erreur réelle, une pile de données vous fournira des informations supplémentaires pour le débogage.

2voto

Mike Stone Points 21293

Je n'ai jamais entendu parler d'une telle fonction, mais ce serait assez trivial pour l'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 ... juste parce qu'il n'est pas intégré ne signifie pas que vous ne pouvez pas le faire vous-même ;-)

-1voto

1800 INFORMATION Points 55907

Vos deux exemples (Perl et Ruby) ne sont vraiment pas la même chose. En Perl, die jette une exception (qui peut être gérée). Si l'exception n'est pas gérée, le programme se termine avec ce message. La fonction exit provoque la fin du programme et ne peut probablement pas être traitée comme une exception. La "meilleure" façon de faire l'équivalent Perl dans Ruby est probablement de lancer une sorte d'exception.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X