La gestion des exceptions est le traitement lorsqu'une erreur se produit. Il est pratique d'écrire la gestion des exceptions pour identifier la cause de l'erreur et éviter les problèmes côté système.
Entourez la partie susceptible d'être la cible de l'erreur par begin et écrivez le traitement lorsque l'erreur se produit lors du sauvetage.
begin
100 / 0
rescue
p "Ne casse pas à 0"
end
puts "Bonjour"
Il est également possible d'écrire avec une seule doublure.
sample_1 = 10 / 0 rescue 0
sample_2 = 10 / nil rescue 0
puts sample_1 #=>0
puts sample_2 #=>0
Vous pouvez également spécifier un argument après la récupération pour stocker le contenu de l'erreur dans une variable.
begin
10 / 0
rescue => e
puts e #=> divided by 0
end
Alternativement, en spécifiant un message d'erreur après le sauvetage, Vous pouvez créer une branche conditionnelle pour décider quelle erreur prendre et que faire.
begin
10 / 0
rescue NoMethodError
puts "Il n'y a pas de méthode"
rescue ZeroDivisionError
puts "Ne casse pas à 0"
end
Il est utilisé lorsque vous souhaitez générer explicitement une erreur et interrompre le processus lorsque les paramètres ne sont pas attendus ou lorsqu'un accès non autorisé se produit.
begin
raise NoMethodError #Classe d'exception que vous souhaitez augmenter
rescue => e
puts e
end
Il est également possible d'émettre un message d'erreur.
begin
raise RuntimeError, "Erreur d'exécution"
rescue => e
puts e
end
Si vous obtenez une erreur, vous pouvez revenir en arrière pour commencer et l'exécuter à nouveau.
num = 0
begin
puts 10 / num
rescue ZeroDivisionError => e
puts e
num = 1
retry #Exécutez à nouveau le bloc de début
end
puts "Fini"
Vous pouvez écrire un traitement exécuté avec ou sans exception.
begin
puts "Pas exception"
rescue => e
puts e
ensure
puts "Absolument courir ici!"
end
Recommended Posts