gpt4 book ai didi

ruby-on-rails - 我什么时候/为什么要在方法上引发异常?

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:41 26 4
gpt4 key购买 nike

我注意到 Rails 中的某些方法使用 ! 运算符在无效时引发异常。例如,User.create!

我为什么以及什么时候想要使用这样的东西?

谢谢。

最佳答案

我可能出于各种原因想要异常(exception)

  • 我可能想确保该方法成功,但我不想在这里进行任何实际的错误处理。但如果出现问题,我可能会接受请求爆炸(例如生成 HTTP 500)
  • 我可能希望在其他地方进行一些错误处理,例如调用链中的某个方式。通常,在错误处理的很长一段路要走一些错误状态会更加冗长和讨厌。结构化错误处理,即 begin ... rescue ... end 使这一点更清楚。
  • 异常可以附加附加数据(例如错误消息)
  • 如果您有不同的错误类型,用不同的异常类来表示错误类型而不是一些神奇的 id 值(在 C 中很常见)通常会更清楚

当错误状态数量很少并且在调用后直接完全处理时,有充分的理由不使用异常而是使用状态标志。但是每一种技术都有它的位置和时间。

顺便说一句,save 方法在内部调用 save!,处理潜在的异常并在有异常时返回 false。参见 the code用于实现。

关于ruby-on-rails - 我什么时候/为什么要在方法上引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404674/

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