我有 10 个 Ruby 函数调用要执行,每个调用都可能抛出异常。我想以相同的方式处理每个异常并继续。有没有一种方法可以在不将每一行都包装在 begin
... rescue
... end
block 中的情况下执行此操作?
[编辑]:这个用例是一个屏幕抓取工具/自动化工具,它使用 Selenium 网络驱动程序来填写表单。我不想费心检查选择元素中的选项是否存在,只是尽可能地填写它们。为此,我需要调用 Selenium::WebDriver::Support::Select.select_by
并在它抛出“无法定位值为 x 的选项”异常时继续。
最佳答案
我找到了 this answer这也符合我的要求:
def action
yield
rescue
....
ensure
....
end
action { call1 }
action { call2 }
action { call3 }
关于ruby - 将每个命令包装在救援语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029857/