IOError

IOError

IO 연산이 실패할 때 발생하는 예외예요.

출처: Ruby 3.3 API

본문

IOError는 IO 연산이 실패했을 때 발생해요. 예를 들어 읽기 전용으로 연 스트림에 쓰기를 시도하거나, 이미 닫힌 스트림을 사용하려 하면 발생하지요.

File.open("/etc/hosts") {|f| f << "example"}
  #=> IOError: not opened for writing

File.open("/etc/hosts") {|f| f.close; f.read }
  #=> IOError: closed stream

한 가지 주의할 점이 있어요. 어떤 IO 실패들은 SystemCallError를 발생시키는데, 이 예외들은 IOError의 하위 클래스가 아니에요.

File.open("does/not/exist")
  #=> Errno::ENOENT: No such file or directory - does/not/exist