ruby - 将每个命令包装在救援语句中

标签 ruby selenium exception-handling

我有 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/

相关文章:

ruby-on-rails - 使用 strftime 解析日期

java - Web UI 自动化测试适用于桌面 Chrome,但可以在 Android Chrome 中找到元素

java - Selenium Phantomjs 驱动程序 - java.lang.NoSuchMethodError : org. openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;

java - Java 可以抛出对异常的空引用吗?

visual-studio-2010 - 带有 xUnit、Assert.Throws 和 "Exception was unhandled by user code"的 Visual Studio

c++ - 如何处理异常?

ruby - 在 hpricot/nokogiri 中搜索 h2 元素之前的所有元素

ruby - 使用 ruby​​ capybara 获取页面的所有 href 链接

ruby - 在 ruby​​ 中将值打印到小数点后两位

java - 使用 Action 可以选择元素但不能将元素拖到特定位置,因为放置功能是在悬停时创建的