De temps en temps , une méthode rencontrer une erreur , à quel point il va échouer et vous dire à ce sujet via le mécanisme appelé une exception. En Ruby, lorsque des exceptions sont déclenchées par une méthode qui rencontre une erreur, vous aurez sauver votre programme et gérer l'erreur . Instructions
lever une exception
1
écrire du code qui va lever une exception , en utilisant l' instruction raise . En Ruby, l' instruction raise va arrêter l'exécution de la méthode , puis dérouler le programme.
2
Joindre l'appel à cette méthode dans un communiqué de sauvetage correspondant . Sinon, le programme se termine et un message d'erreur sera affiché sur le terminal . L'exemple suivant montre une fonction de moyenne , telle que celle trouvée dans le logiciel de carnet de notes .
3
Ici, tous les résultats des tests sont en moyenne . Si le résultat est supérieur à 100% , il n'y a pas d'autre choix que de lever une exception parce que quelqu'un a triché : def moyenne ( nombre1 , nombre2 , num3 ) = av ( num1 + + num2 num3 ) /3.0if av > Quelqu'un 100raise " triché , moyenne est # { av } " elsereturn avendend
gérer l'exception
4
écrire la déclaration de sauvetage , en appelant la méthode de la moyenne enfermé dans un bloc avec une déclaration de sauvetage.
5
Début du bloc avec «commencer ». Il peut avoir n'importe quel nombre de déclarations de «sauvetage» , et il se termine par le mot-clé "fin" . La déclaration de sauvetage a une clause de type ainsi : un type suivi par => et un nom de variable . Hors du type permettra à la déclaration de sauvetage pour attraper toutes les exceptions levées .
6
Lors de l'exécution de la déclaration de sauvetage , la valeur qui a été soulevée est attribué à "e ". Il peut y avoir plusieurs déclarations de sauvetage avec plusieurs types de gérer les différents types d'erreurs: beginaverage (98 , 92, 130) de sauvetage => eputs «J'ai attrapé quelqu'un triche! " Puts " Le message d'erreur était la suivante: # { e }" fin
écrire autre et s'assurer que les états
7
Créer une déclaration d'assurer , en plus de la déclaration de sauvetage. La déclaration d'assurer toujours est exécuté lorsque le bloc est terminé. Indépendamment de la façon dont le bloc est sorti , si oui ou non il y avait une exception soulevée , ou même si elle n'a pas réussi à sauver l'exception elle-même , l' assurer instruction est toujours exécutée. L' instruction else est exécutée que si il n'y avait pas d'exceptions
8
vous voulez vous assurer que le carnet de notes se ferme , vous assurez livre close_grade s'appelle: . Beginaverage (98 , 92, 130) sauvetage => eputs «J'ai attrapé quelqu'un triche! " puts " Le message d'erreur était la suivante: # { e }" > ensureclose_gradebookend
9
Ecrire une instruction else . S'il n'y avait pas d'exceptions , l'instruction else sera féliciter l'élève pour ne triche pas : elseputs «Bon travail , et vous n'avez même pas tricher ! "