加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby – 如何在不多次写入的情况下为多个方法引发相同的错误?

发布时间:2020-12-17 02:56:48 所属栏目:百科 来源:网络整理
导读:假设我创建了一个通过操作数组中的元素来工作的Calculator类 – 在这个类中我定义了几个方法:add,subtract,multiply,divide.如果数组中只有1个或更少的元素,我希望每个方法都引发相同的错误,例如: class Calculator# ...def add if @array.length 2 raise
假设我创建了一个通过操作数组中的元素来工作的Calculator类 – 在这个类中我定义了几个方法:add,subtract,multiply,divide.如果数组中只有1个或更少的元素,我希望每个方法都引发相同的错误,例如:

class Calculator
# ...
def add
  if @array.length < 2
    raise 'Not Enough Elements'
  else
    @array << @array.pop + @array.pop
  end
end
# ...
end

我可以编写一个条件来将错误提升到每个方法中,但这似乎非常繁琐且不是Ruby.是否有办法将引发的错误应用于所有需要它的方法,以节省所有输入?

解决方法

其中一个选项是将长度检查逻辑移动到它自己的方法中并在需要时使用它:

class Calculator
  def add
    check_array_length
    # rest of the method
  end

  private

  def check_array_length
    raise 'Not Enough Elements' if @array.length < 2
  end
end

如果你在initialize方法中设置@array,你可以在早期阶段加注,说由于@array中的元素太少而无法继续:

class Calculator
  def initialize(array)
    raise 'Not Enough Elements' if array.length < 2

    @array = array
  end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读