Ошибочные классы Исключения Ruby

Можно ли создать подкласс исключения для создания этого более описательным, но как необходимо установить 'сообщение' по умолчанию?

class MyError < StandardError
  # default message = "You've triggered a MyError"
end

begin
  raise MyError, "A custom message"
rescue Exception => e
  p e.message
end

begin
  raise MyError
raise Exception => e
  p e.message
end

Первое должно произвести 'Пользовательское сообщение'

Второе должно произвести, 'Вы инициировали MyError'

Какие-либо предложения относительно лучшей практики?

33
задан JP. 1 August 2010 в 16:52
поделиться

1 ответ

Определите метод инициализации, который принимает сообщение в качестве аргумента со значением по умолчанию. Затем вызовите метод инициализации StandardError с этим сообщением (используя super ).

class MyError < StandardError
  def initialize(msg = "You've triggered a MyError")
    super(msg)
  end
end
62
ответ дан 27 November 2019 в 18:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: