23
20

More than 5 years have passed since last update.

【Ruby】カスタム例外を作成する簡単3ステップ

Last updated at Posted at 2019-05-21

概要

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

以上です。
簡単に独自の例外を作成する事ができました。

参照

23
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
20