ruby-on-rails - 从救援/提升错误中获取实例

标签 ruby-on-rails ruby error-handling

假设我有一个叫某些方法的 gem

      def grit
          @grit ||= Grit::Repo.new(path)
        rescue Grit::NoSuchPathError
          raise NoRepository.new('no repository for such path')
      end

假设现在我从Rails应用程序调用此方法。有没有办法从我的应用程序中获取此NoRepository实例,或者我应该更改此方法以使其返回此实例?

最佳答案

我不确定fetch NoRepository实例的意思。基本上,引用NoRepository实例的方式是通过挽救该错误。

调用grit方法并从NoRepository抢救的代码:

begin
  grit()
rescue NoRepository => nr
  # Here `nr` is the instance of NoRepository
end

关于ruby-on-rails - 从救援/提升错误中获取实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623049/

相关文章:

ruby-on-rails - byebug 中的 Rails 多行调试或如何在单行中进行救援

ruby-on-rails - Rails 找不到 rake-10.5.0

ruby - fasterCsv 异常处理

error-handling - 强制antlr3在规则失败时立即退出

由于 net::ERR_CONTENT_LENGTH_MISMATCH 而未加载 Javascript

css - Rails Bootstrap 已损坏

ruby-on-rails - 我的 Rails 迁移无法运行,我无法部署我的 Rails 应用程序。我怎样才能重新开始?

ruby - 从多个 select_list 元素中选择

error-handling - F#HashCode到枚举转换

error-handling - Magento 2 : Use 404 page instead of autosearch