gpt4 book ai didi

ruby-on-rails - 抛出异常/错误时的错误处理

转载 作者:行者123 更新时间:2023-12-03 08:26:36 27 4
gpt4 key购买 nike

我会尽力保持甜美。

在ruby中,如果引发异常,返回另一个值的最佳方法是什么?我有刹车通知我有异常情况,但是我不想阻止该过程继续进行。到目前为止,我有这样的事情:

house = House.find(1)
visitor_count = begin
house.visitors.count
rescue => e
Airbrake.notify(e)
0
end

想知道除了开始块之外是否还有其他方法可以这样做。谢谢!

最佳答案

您的解决方案(单独)很好。这是组织相同逻辑的另一种方法:

def num_house_visitors(id)
House.find(id).visitors.count
rescue => e
Airbrake.notify(e)
0
end

我建议您首先尝试处理或防止发生异常情况:
house = House.find_by(id: id) # assuming Rails/ActiveRecord
house = Struct.new('MissingHouse', :visitors).new([]) if house.nil? # prevent nil errors

# House#visitors (and MissingHouse#visitors) always returns an array
vistor_count = house.visitors.count # this can't fail

关于ruby-on-rails - 抛出异常/错误时的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39779741/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com