SystemCallError

SystemCallError (시스템 호출 오류 예외)

SystemCallError는 모든 저수준(low-level) 플랫폼 종속 오류의 베이스 클래스예요. 파일 입출력, 네트워크 같은 작업이 운영체제 시스템 콜에서 실패하면 이 계열의 예외가 발생해요.

출처: Ruby 3.3 API

본문

현재 플랫폼에서 사용 가능한 오류들은 SystemCallError의 서브클래스들이고, Errno 모듈 안에 정의돼 있어요. 예를 들어 존재하지 않는 파일을 열려고 하면 아래처럼 Errno::ENOENT 예외가 발생해요.

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

system_call_error === other → true or false

수신자(receiver)가 일반적인(generic) SystemCallError이거나, selfother의 오류 번호(error number)가 같으면 true를 돌려줘요.

new(msg, errno) → system_call_error_subclass

errno가 알려진 시스템 오류 코드에 해당하면 해당 오류에 맞는 적절한 Errno 클래스를 만들고, 그렇지 않으면 일반적인 SystemCallError 객체를 만들어요. 만들어진 뒤에는 errno 메서드로 오류 번호를 얻을 수 있어요.

errno → integer

SystemCallError의 오류 번호를 돌려줘요.