在Ruby IO中处理SystemCallErrors的正确方法是什么?

时间:2012-08-15 17:17:50

标签: ruby error-handling io

在Ruby中,我可以将contents写在path的文件中,就像:

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

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

(同样的说法,我们不得不担心Ruby中的短计数吗?)

1 个答案:

答案 0 :(得分:2)

经过一番挖掘,我发现(正如预期的那样)Ruby会自动处理短计数和EAGAIN。相应的代码为in io.c