J'apprends Ruby et j'ai rencontré le fail
mot-clé. Qu'est-ce que cela signifie ?
if password.length < 8
fail "Password too short"
end
unless username
fail "No user name set"
end
J'apprends Ruby et j'ai rencontré le fail
mot-clé. Qu'est-ce que cela signifie ?
if password.length < 8
fail "Password too short"
end
unless username
fail "No user name set"
end
En Ruby, fail
est synonyme de raise
. Le site fail
Le mot-clé est une méthode de la Kernel
qui est inclus par la classe Object
. Le site fail
soulève une erreur d'exécution, tout comme la méthode raise
mot-clé.
En fail
a trois surcharges :
fail
: soulève un RuntimeError
sans message d'erreur.
fail(string)
: soulève un RuntimeError
avec l'argument chaîne comme message d'erreur :
fail "Failed to open file"
fail(exception [, string [, array]])
: soulève une exception de classe exception
(premier argument) avec un message d'erreur facultatif (deuxième argument) et des informations de rappel (troisième argument).
Exemple : Supposons que vous définissiez une fonction qui doit échouer si elle reçoit un mauvais argument. Il est préférable d'élever un ArgumentError
et non un RuntimeError
:
fail ArgumentError, "Illegal String"
Un autre exemple : Vous pouvez passer l'ensemble backtrace au fail
afin de pouvoir accéder à la trace à l'intérieur de la méthode rescue
bloc :
fail ArgumentError, "Illegal String", caller
caller
est une méthode du noyau qui renvoie le backtrace sous la forme d'un tableau de chaînes de caractères sous la forme de file:line: in 'method'
.
Sans argument, lève l'exception dans $ ! ou lève une RuntimeError si $ ! est nul. Avec un seul argument de type String, lève une RuntimeError avec la chaîne de caractères comme message. Sinon, le premier paramètre doit être le nom d'une classe d'exception (ou d'un objet qui renvoie un objet Exception lorsqu'il reçoit un message d'exception). Le deuxième paramètre facultatif définit le message associé à l'exception. est un tableau d'informations de rappel. Les exceptions sont capturées par la clause de sauvetage des blocs begin...end.
Source : Documentation Ruby sur le module Kernel .
www.ruby-doc.org est votre ami. Quand j'ai cherché sur Google rubydoc fail
" Noyau "a été le premier coup. Mon conseil est le suivant : en cas de doute, consultez la source définitive pour les définitions de ce genre.
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.