mercredi 17 décembre 2008

Ruby Exceptions

[RubyDoc Exceptions] - begin, rescue, catch, raise, retry <=> try, catch, finally (Java)
Mieux qu'un long discours, un exemple !!

#la bonne façon d'ouvrir un fichier!!
begin
  f = File.new('C:\\myFile.txt', 'r')
rescue => err
  puts "#{err}"
ensure
  f.close unless f.nil?
end

> ouverture du fichier "myFile.txt" en cas d'erreur on affiche l'erreur que l'on récupère (rescue)
> ensure : on s'assure que dans tous les cas on ferme la socket du fichier ;)
NB: on peut bien sur exécuter d'autres traitements...

catch/throw ! on peut vouloir ne pas s'arrêter dans un traitement!
on peut retenter l'opération "
retry/raise"
la récupérer "catch", ou la repropager "throw"
plus de détail dans la doc :)