【问题标题】:What's the correct way to handle SystemCallErrors in Ruby IO?在 Ruby IO 中处理 SystemCallErrors 的正确方法是什么?
【发布时间】:2012-08-15 17:17:49
【问题描述】:

在 Ruby 中,我可以将 contents 写入位于 path 的文件中,如下所示:

IO.write path, contents, :mode => 'w+'

但是,文档没有指定可能引发哪种异常。在 C 中,如果程序遇到EAGAINEINTR,它通常会尝试再次写入文件。我们是否应该在 Ruby 中做同样的事情(通过捕获 Errno::EINTRErrno::EAGAIN)?我有点期待像 Ruby 这样的语言会有更高级别的抽象。在这里使用的正确模式是什么?

(同理,我们是否需要担心 Ruby 中的计数不足?)

【问题讨论】:

    标签: ruby error-handling io


    【解决方案1】:

    经过更多挖掘,我发现(如预期的那样)Ruby 可以自动处理短计数和EAGAIN 。相应的代码是in io.c

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 2021-10-30
      • 2020-12-02
      • 2020-09-23
      • 2012-03-29
      相关资源
      最近更新 更多