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