Menu
Coddy logo textTech

Qu'est-ce qu'une exception ?

Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 43 sur 56.

Lorsque quelque chose ne va pas au moment de l'exécution, comme diviser par zéro, analyser "abc" comme un entier ou appeler une méthode sur nil : Ruby lève une exception. Le programme s'arrête, et Ruby affiche ce qui s'est passé ainsi que l'endroit où cela s'est produit.

10 / 0
# ZeroDivisionError: divisé par 0

Chaque type d'échec est sa propre classe. En voici quelques-uns courants :

  • ZeroDivisionError : division d'un entier par zéro
  • ArgumentError : mauvais arguments passés à une méthode (Integer("abc"))
  • NoMethodError : appel d'une méthode que le receveur ne possède pas (nil.upcase)
  • TypeError : opération sur le mauvais type d'objet ("a" + 1)

Chaque classe d'exception possède un .message : la description lisible par l'homme que Ruby affiche lorsque l'exception n'est pas gérée. Les prochaines leçons montrent comment intercepter ces exceptions afin que votre programme continue de s'exécuter.

challenge icon

Défi

Débutant

Lisez une seule ligne d'entrée, un nom d'expression Ruby. Affichez le nom de la classe d'exception que Ruby lèverait pour celle-ci. Utilisez une instruction case (aucune levée d'exception réelle n'est nécessaire) :

  • divide-by-zeroZeroDivisionError
  • nil-methodNoMethodError
  • bad-integerArgumentError
  • wrong-typeTypeError
  • tout autre chose → Unknown

Pour l'entrée nil-method, la sortie est NoMethodError.

Essayez vous-même

kind = gets.chomp

# À FAIRE : case kind ... afficher le nom de la classe d'exception correspondante
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux