Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby의 사용자 정의 예외

Ruby에서 자신만의 예외를 만드는 것은 쉽습니다. 다음 단계를 따르세요.

1. 새 수업 만들기

Ruby의 다른 모든 것과 마찬가지로 예외는 클래스입니다! 새로운 종류의 예외를 생성하려면 StandardError 또는 그 자식 중 하나를 상속하는 클래스를 생성하면 됩니다.

class MyError < StandardError
end

raise MyError

규칙에 따라 새 예외에는 "오류"로 끝나는 클래스 이름이 있습니다. 모듈 내부에 사용자 정의 예외를 넣는 것도 좋은 방법입니다. 즉, 최종 오류 클래스는 다음과 같습니다. ActiveRecord::RecordNotFoundNet::HTTP::ConnectionError .

2. 메시지 추가

모든 루비 예외 객체에는 메시지 속성이 있습니다. 예외 이름 옆에 인쇄되는 더 긴 텍스트입니다.

Ruby의 사용자 정의 예외 예외 메시지 속성의 예

다음과 같이 예외를 발생시킬 때 메시지를 지정할 수 있습니다.

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의 차이점에 대한 기사를 확인하세요.