相关疑难解决方法(0)

访问OpenStruct中不存在的属性时引发异常

我试图找出如何使它成为一个OpenStruct的子类(或任何类的东西)或哈希,如果我尝试访问尚未设置的属性将引发自定义异常.我无法得到define_methodmethod_missing做到这一点,所以我无能应该如何在Ruby中进行.

这是一个例子:

class Request < OpenStruct...

request = Request.new

begin
  request.non_existent_attr
rescue CustomError...
Run Code Online (Sandbox Code Playgroud)

我可以想象它必须是这样的:

class Hash
  # if trying to access key:
  # 1) key exists, return key
  # 2) key doesn't exist, raise exception
end
Run Code Online (Sandbox Code Playgroud)

编辑:存在的属性不应引发异常.我正在寻找的功能是,我可以自由访问属性,如果它不存在我的自定义异常将被引发.

ruby openstruct

11
推荐指数
4
解决办法
3143
查看次数

标签 统计

openstruct ×1

ruby ×1