ruby - else block 中的Ruby异常处理

标签 ruby logging error-handling block rescue

所以我有经典的Ruby异常处理:

begin
    # do work here
rescue SafeShutdown => e
    # prevent loss of data and safely shutdown
rescue SystemExit => e
    # print #{e} and continue
else
    # how can I get #{e} here to get error message
    # so I can behave like in previous rescue
    # 
    # print #{e} and continue
end

我的问题是如何获取“e”以在记录器的其他部分打印出来。

最佳答案

begin rescue块中,仅当不发生异常(即未引发任何错误)时才调用else。尝试这个:

begin
  # do work here
rescue SafeShutdown => e
  # print e
rescue SystemExit => e
  # print e
else
  # this will only run when no exceptions are thrown
ensure
  # this will always run
end

关于ruby - else block 中的Ruby异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295926/

相关文章:

r - 矩阵乘法(逐行)

Javascript 使用严格错误未捕获

ruby - 使用 Ruby Mechanize 单击带有自定义事件的按钮

c# - 异常。EntLib 日志中缺少数据信息

ruby - 谁在 `defer` 中定义了 `deploy.rb` ?

ios - 离开 NSLogs 是否存在安全风险?

search - 在组织模式下使用 LOGBOOK 中的时间戳进行自定义搜索

swift - Swift 2.0 do-try-catch 和常规 Java/C#/C++ 异常有什么区别

ruby-on-rails - Ruby on Rails 离线编程

ruby - 如何向 Ruby 中的异常消息添加信息?