gestion des exceptions ruby

À propos de cet article

Dans les activités de changement de travail, j'ai parfois décrit la gestion des exceptions comme un problème technique, mais je ne l'ai jamais rencontré auparavant, il s'agit donc d'un résultat

Qu'est-ce que la gestion des exceptions?

begin

#Spécifiez le code pour détecter les problèmes lors de l'exécution de programmes
#Ecrire du code susceptible de provoquer une erreur

rescue

#Décrivez comment réagir lorsqu'un problème est détecté

end

Lever une exception

Avec un code comme celui-ci, «100/0» ne peut pas être exécuté, donc le traitement s'arrête à «réponse = 100 / nombre». ZeroDivisionError est l'erreur correspondante et décrit le traitement que vous souhaitez effectuer lorsque cette exception se produit.

number = 0
answer = 20 / num
puts answer
puts 2

=>`/': divided by 0 (ZeroDivisionError)
	from Main.rb:4:in `<main>'

Gestion des exceptions

Si vous écrivez comme suit, le processus s'arrêtera car une exception se produira normalement à «100/0», mais puisque le processus de sauvetage est exécuté, le processus sera exécuté jusqu'à la fin.

puts 1
begin
    #Écrivez le code que vous souhaitez détecter
    number = 0
    answer = 20 / num
    puts answer
rescue ZeroDivisionError => e
   #Décrivez le processus que vous souhaitez effectuer lorsque ZeroDivisionError se produit (enregistrer un gestionnaire d'exceptions)
    p e
ensure
    puts 2
end


=>
1
#<ZeroDivisionError: divided by 0>
2

Qu'est-ce que e?

Il s'agit d'un objet (variable) ZeroDivisionError qui stocke les détails de l'exception qui s'est produite. En d'autres termes, si vous affichez ceci, vous pouvez comprendre pourquoi l'erreur s'est produite.

Comment sortir

Les objets ont divers messages et peuvent récupérer les informations nécessaires comme indiqué ci-dessous.

p e

puts e.message

p e.backtrace


=>
#<ZeroDivisionError: divided by 0>

divided by 0

["Main.rb:4:in `/'", "Main.rb:4:in `<main>'"]


Recommended Posts

gestion des exceptions ruby
Gestion des exceptions Ruby
À propos de la gestion des exceptions Ruby
Gestion des exceptions
Exception de traitement des exceptions
[Ruby] Gestion des exceptions dans les fonctions
Gestion des exceptions Java?
À propos de la gestion des exceptions
[Java] Gestion des exceptions
☾ Java / Gestion des exceptions
À propos de la gestion des exceptions Java
Gestion des exceptions Java
[Ruby] Traitement des exceptions, le cas échéant, restituer
Pratique de gestion des exceptions (ArithmeticException)
Gestion des exceptions Spring Boot
[Java] Pratique de la gestion des exceptions [Exception]
[Java] À propos de la gestion des exceptions try-catch
exception
Règles d'utilisation pour la gestion des exceptions Java
Techniques de gestion des exceptions en Java
[Session d'étude interne] Gestion des exceptions Java (2017/04/26)
[Rails] Comment écrire la gestion des exceptions?
Gestion des exceptions avec une interface fluide
Compréhension étape par étape de la gestion des exceptions Java
[Pour les débutants en Java] À propos de la gestion des exceptions
Résolution avec Ruby AtCoder 1er test pratique de l'algorithme Une gestion des exceptions
[Ruby] Tableau
Ruby apprentissage 5
Bases de Ruby
Revue Ruby 2
Ajout de rubis
Ruby apprentissage 3
Paramètre Ruby 2
Problème de rubis ⑦
Exception faite par vous-même
Ruby apprentissage 2
Java (gestion des exceptions, threading, collection, fichier IO)
Conseils pour la gestion des erreurs de gRPC dans Ruby
Ruby apprentissage 6
Paramètres Ruby 1
Ruby apprentissage 1
Ruby Review 1
gestion des exceptions try-catch-finally Comment utiliser java
Je souhaite concevoir une structure pour la gestion des exceptions
Questions sur la gestion des exceptions Java throw et try-catch