Ruby에서 자신만의 예외를 만드는 것은 쉽습니다. 다음 단계를 따르세요.
1. 새 수업 만들기
Ruby의 다른 모든 것과 마찬가지로 예외는 클래스입니다! 새로운 종류의 예외를 생성하려면 StandardError 또는 그 자식 중 하나를 상속하는 클래스를 생성하면 됩니다.
class MyError < StandardError
end
raise MyError
규칙에 따라 새 예외에는 "오류"로 끝나는 클래스 이름이 있습니다. 모듈 내부에 사용자 정의 예외를 넣는 것도 좋은 방법입니다. 즉, 최종 오류 클래스는 다음과 같습니다. ActiveRecord::RecordNotFound
및 Net::HTTP::ConnectionError
.
2. 메시지 추가
모든 루비 예외 객체에는 메시지 속성이 있습니다. 예외 이름 옆에 인쇄되는 더 긴 텍스트입니다.
예외 메시지 속성의 예
다음과 같이 예외를 발생시킬 때 메시지를 지정할 수 있습니다.
raise MyError, "My message"
그리고 고유한 생성자를 추가하여 사용자 정의 오류 클래스에 기본 메시지를 추가할 수 있습니다.
class MyError < StandardError
def initialize(msg="My default message")
super
end
end
3. 예외에 맞춤 데이터 속성 추가
다른 클래스에서 하는 것처럼 예외에 사용자 정의 데이터를 추가할 수 있습니다. 속성 리더를 클래스에 추가하고 생성자를 업데이트합시다.
class MyError < StandardError
attr_reader :thing
def initialize(msg="My default message", thing="apple")
@thing = thing
super(msg)
end
end
begin
raise MyError.new("my message", "my thing")
rescue => e
puts e.thing # "my thing"
end
그게 다야! Ruby에서 사용자 정의 오류 또는 예외를 만드는 것은 실제로 그렇게 어렵지 않습니다. 한 가지 알아두셔야 할 것이 있습니다. 예제에서 우리가 항상 StandardError에서 어떻게 상속받았는지 알 수 있습니까? 의도적입니다. Ruby에는 Exception 클래스가 있지만 절대로 직접 상속해서는 안 됩니다. 이에 대한 자세한 내용은 Exception과 StandardError의 차이점에 대한 기사를 확인하세요.