0

Ruby1.8.7のコードセクションがあります

 rescue SystemCallError 

ただし、プログラムがで終了する場合がありますErrno::ETIMEDOUT。SytemCallErrorはすべてのErrnoエラーをキャッチすることになっているのではありませんか?

編集:コードは

 rescue SystemCallError, StandardError

ありがとう

4

1 に答える 1

1

それは確かにあるはずです!rescueスローされているエラーのパスにあると確信していますか?

>> Errno::ETIMEDOUT.superclass
SystemCallError
>> Errno::ETIMEDOUT.new.is_a? SystemCallError
true

また:

>> begin
?>   raise Errno::ETIMEDOUT, "Fail, please"
>> rescue SystemCallError, StandardError
>>   puts "Caught #{$!.inspect}"
>> end
Caught #<Errno::ETIMEDOUT: Operation timed out - Fail, please>
于 2012-10-30T18:57:32.533 に答える