概要
Rubyでは以下の簡単なステップで独自の例外を作成する事ができます。
カスタム例外のクラスを作成
例外のクラスは他のRubyのクラスと同じです。
StandardError
を継承する独自の例外クラスを作成しましょう。
(Rubyの慣習に従って、独自の例外クラスの名前の最後にError
をつけます。)
class MyError < StandardError
end
メッセージを付け加える
全てのRubyの例外オブジェクトは message
の属性を持っています。
以下のようにして独自の例外にデフォルトのメッセージを定義してみましょう。
class MyError < StandardError
def initialize(msg="My Message")
super
end
end
raise MyError #=> My Message
これは全ての例外に言える事ですが、以下のように表示するメッセージを明示する事もできます。
raise MyError, "Custom Message" #=> Custom Message
独自のデータを例外に付け加える
他のRubyのクラスと同様に、独自のデータを例外に付け加える事ができます。
class MyError < StandardError
attr_reader :attr
def initialize(msg="My default message", attr="My value")
@attr = attr
super(msg)
end
end
begin
raise MyError.new("my message", "My value")
rescue => e
puts e.attr #=> My value
end
以上です。
簡単に独自の例外を作成する事ができました。