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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |