我有句台词是这样的:
@hsh.has_key?(foo) ? @hsh[foo][bar] : raise("custom error")
我宁愿这样写:
@hsh[foo][bar] || raise ("custom error")
但是当“HSH[Fo]”不存在时,NMOTHODERROR被称为。
最佳答案
要保存异常,您需要rescue
,但您的代码中没有该异常||
只对nil
起反应。
你可能想要这个:
@hsh.fetch(foo, {})[bar] || raise("custom error")
关于ruby-on-rails - 可以覆盖异常吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5940265/