gpt4 book ai didi

ruby-on-rails - 最佳实践 : Try vs Rescue

转载 作者:数据小太阳 更新时间:2023-10-29 06:19:36 25 4
gpt4 key购买 nike

什么是最佳实践?要使用try 还是使用rescue

user.try(:email)

对比

user.email rescue nil

post.try(:comments).try(:first).try(:author)

对比

post.comments.first.author rescue nil

使用这些有什么区别吗?

最佳答案

尝试和救援有不同的目的。 try 的目的是让您不必做:

if user && user.email

或者父对象可能为 nil 的任何情况,这将导致 NilClass 上的 NoMethodError。 rescue 的目的是处理方法调用引发的异常。如果您预计调用 user.email 会出现异常,那么您可以rescue nil 以防止异常冒泡。

一般来说,我会说避免使用 rescue nil 除非你明确知道你正在拯救什么异常,因为你可能正在拯救一个不同的异常,而你永远不会知道,因为 rescue nil 会阻止你看到它。至少也许你可以记录它:

begin
...some code...
rescue => ex
logger.error ex.message
end

关于ruby-on-rails - 最佳实践 : Try vs Rescue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063347/

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