J'ai le code suivant pour m'aider à détecter les erreurs de redirection lors du traitement des URL.Comment attraper différents types d'erreurs en même temps?
begin
page = Nokogiri::HTML(uri.open(redirect: false))
rescue OpenURI::HTTPRedirect => redirect
uri = redirect.uri
puts "retry #{tries}: #{uri}"
retry if (tries-=1) > 0
raise
Cela fonctionne bien pour les erreurs de redirection d'URL, mais n'attrape aucun autre type d'erreur. Par exemple, une URL a renvoyé une erreur 416, qui n'a pas pu être gérée par le code ci-dessus.
Je peux utiliser
rescue StandardError => e
pour attraper l'erreur 416 et sauter l'URL que j'étais traitement, mais comment puis-je attraper les deux erreurs en même temps pour que quand il y a une erreur de redirection, le code sait où rediriger, et quand il y a d'autres types d'erreurs, le code sait quand sauter?