Ok, hier, on a vu comment gérer les erreurs Ruby (comme appeler une méthode inexistante). Mais imaginons que l’on veuille définir nos propres règles ?
Raise an exception
Je vais créer une méthode où je vais afficher une erreur sous certaines conditions. Exemple :
def edf if nouveau_joueur != francais raise "Tu ne peux que sélectionner des français coco!" end end → ! RuntimeError ("Tu ne peux que sélectionner des français coco!")
Bien sûr, ce bloc de code ne marche pas en soi, mais c’est pour montrer que dans ma méthode “edf” (qui veut dire “Equipe De France”), si on ajoute un joueur non français, ça affiche une erreur. En effet, Ruby se contrefout de savoir si un joueur en edf est français ou pas. Par contre, pour nous, c’est très important.
La syntaxe ci-dessus est la plus pratique, mais on peut aussi l’écrire de deux manières différentes :
raisetout court affiche un RuntimeError sans messageraise NoMethodError, "Un problème coco!", caller: c’est la syntaxe la plus propre. En effet, on ajoute ici le type d’exception auquel s’applique le raise. Il y a aussi le message, et le caller, une sorte de variable où est stockée l’erreur si j’ai bien compris…
Le mieux dans mon exemple d’EDF serait de créer une exception appelée “PlayerCountryError”. Ce serait magique! On va voir si mes talents de prestidigitation seront encore valables demain…
Flux RSS