gpt4 book ai didi

ruby - 在 Ruby 中引发异常与抛出异常有什么区别?

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

Ruby 有两种不同的异常机制:Throw/Catch 和 Raise/Rescue。

为什么我们有两个?

什么时候应该使用一个而不是另一个?

最佳答案

  • raisefailrescueensure 处理错误,也称为异常(exception)
  • throwcatch控制流

Unlike in other languages, Ruby’s throw and catch are not used for exceptions. Instead, they provide a way to terminate execution early when no further work is needed. (Grimm, 2011)

终止单级控制流,如 while 循环,可以通过简单的 return 来完成。可以使用 throw 终止多级控制流,例如嵌套循环。

While the exception mechanism of raise and rescue is great for abandoning execution when things go wrong, it's sometimes nice to be able to jump out of some deeply nested construct during normal processing. This is where catch and throw come in handy. (Thomas and Hunt, 2001)

引用资料

  1. 格林,阿夫迪。 “投、接、举、救……我好迷茫!” Ruby 学习博客。 N.p.,2011 年 7 月 11 日。网络。 2012 年 1 月 1 日。http://rubylearning.com/blog/2011/07/12/throw-catch-raise-rescue--im-so-confused/ .
  2. Thomas、Dave 和 Andrew Hunt。 “编程 ruby 。” :实用程序员指南。 N.p., 2001. 网络。 2015 年 9 月 29 日。http://ruby-doc.com/docs/ProgrammingRuby/html/tut_exceptions.html .

关于ruby - 在 Ruby 中引发异常与抛出异常有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51021/

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