为什么在Ruby中几乎没有使用过throw和catch?

我最近参加了关于raisethrow的讨论。 还有另一个SO讨论这个问题 ,专家们总结了这种情况:

  • 投掷和提升在很大程度上是可以互换的
  • throw好处是你可以轻松扔掉任何东西,并且你不会浪费时间将堆栈跟踪放在一起

这让我有一个问题,为什么没有人实际上在Ruby中使用throw? 前面讨论的线程提到在Sinatra中使用catch / throw来处理HTTP错误代码,但是,我在野外看到了很少的catch / throw示例,我只在我自己的代码中使用过一次。 正如目前的Rails安全危机所显示的那样,Ruby社区广泛忽略了重要的function(在这种特殊情况下为$ SAFE级别)。 那么catch / throw有什么用呢?

Interesting Posts