Forum Programmation.ruby Afficher les messages d'erreur

Posté par (page perso) .
Tags : aucun
0
27
juil.
2008
Bonjour,

j'ai un petit problème de compréhension. J'intercepte une erreur avec un "rescue SystemCallError" afin d'effectuer certains traitements, mais je voudrais également afficher le message d'erreur natif de Ruby. J'ai vu qu'il faut mettre un "raise" mais ça ne donne rien.


require 'fileutils'
begin
FileUtils.copy_file( "source", "dest" )
rescue SystemCallError
ma_fonction()
puts "ici j'aimerais afficher le message d'erreur donné par Ruby"
#raise
end


J'ai essayé en mettant juste "raise" là où je l'ai indiqué en commentaire, mais je n'ai rien qui s'affiche. Quelqu'un sait comment faire ?
  • # Méthode message ou to_s

    Posté par . Évalué à 6.

    Il faut que tu récupère l'exception dans une variable comme ceci :


    #!/usr/bin/ruby1.8
    begin
    sdf # au pif
    rescue NameError => ne
    p 'Class : ' + ne.class.to_s
    p 'to_s : ' + ne.to_s
    p 'to_str : ' + ne.to_str
    p 'message : ' + ne.message
    end


    ce qui donne :

    $ ./test.rb
    "Class : NameError"
    "to_s : undefined local variable or method `sdf' for main:Object"
    "to_str : undefined local variable or method `sdf' for main:Object"
    "message : undefined local variable or method `sdf' for main:Object"

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.