gpt4 book ai didi

ruby - 如何同时捕获不同的错误类型?

转载 作者:行者123 更新时间:2023-12-03 08:05:12 25 4
gpt4 key购买 nike

我有以下代码可帮助我在处理URL时捕获重定向错误。

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

它适用于URL重定向错误,但不能捕获任何其他类型的错误。例如,URL引发416错误,以上代码无法处理。

我可以用
rescue StandardError => e

捕获416错误并跳过我正在处理的URL,但是如何同时捕获这两个错误,以便在出现重定向错误时,代码知道重定向的位置,以及在存在其他类型的错误时,代码知道何时跳过?

最佳答案

只需要再进行一次营救。您可以根据需要添加任意数量。

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
rescue OtherError => e
# do something

关于ruby - 如何同时捕获不同的错误类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45928342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com