2012-08-29 2 views
1

루비 라이브러리를 만드는 중입니다. (사실 저는 자바 개발자입니다.) 누구든지 사용할 수 있습니다. 라이브러리에 문제가 생기면 어떤 시나리오가 될까요? 당신이 선호하는, 내가 예외를 제기하거나 그냥 오류 코드를 반환합니다.외부 루비 라이브러리를 사용할 때 에러 처리의 일반적인 방법

자바에서는 예외가 발생하지 않으며 lib의 사용자가 예외를 포착 할 수 있도록 "throws"- 선언을 정의 할 수 있습니다.

루비에서 바람직한 방법은 무엇입니까?

관련 & & TIA noircc 루비에서

답변

4

, 당신 raise 예외. 예외는 클래스, 클래스의 인스턴스 또는 클래스와 문자열이 될 수 있으며 일반적으로 클래스는 StandardError의 뒤를 이어, Exception의 부류입니다. 예외를 잡기 위해, 당신은 이렇게 : 당신은 단지 raise 라인에 대해 걱정할 필요가 거라고 그래서

begin 
    raise StandardError, "weeee, exception!" 
rescue StandardError => e # or => e for a general rescue 
    puts "Exception Message: #{e.message}" 
end 

일반적으로는, 예외 처리 라이브러리 외부에서 수행 될 것이다. throwcatch은 여전히 ​​루비에 있지만 예외 처리에 선호되는 방법은 raise입니다.

+0

외부 보석을 사용하고 lib의 함수를 호출하는 경우 예외가 발생하거나 오류 코드 (정수)를 사용하여 무엇이 잘못되었는지를 알려주시겠습니까? – noircc

+1

@noircc 루비의 일반적인 동작은 예외를 발생시키는 것입니다. –

관련 문제