잊지 않겠습니다.

Error처리는 다른 언어와 기본적으로 비슷하게 throw..catch 방법을 이용한다.
Ruby에서의 예외 계층을 이용해서, 사용하게 된다. (Python에서의 Error 처리 방법과 유사하다.)
begin~rescue~end 구문으로 이용한다.

op_file = File.Open(opfile_name, "w")
begin
    while data = socket.read(512)
        op_file.write(data)
    end
rescue SystemCallError
    $stderr.print "IO failed : " + $!
    op_file.close
    File.delete(op_filename)
    raise
end

 

에러의 발생 방법

1. 단순히 현재의 예외($!)를 다시 발생
raise 
2. RuntimeError 예외를 새로 만들고, 문자열을 넘기는 경우
raise "Error Occur!!" 
3. 예외 Class를 지정해주는 경우
raise InterfaceException, "Keyboard Fail", caller

예외 class를 만들어주고, 그에 대한 메세지를 정한 후에 추적 stack을 정해준다. 일반적으로 Kernel.caller를 통해서 stack의 추적이 이루어진다.

 

Posted by Y2K
,