wrz*_*asa 5 ruby performance try-catch control-structure throw
catch在Ruby中意味着跳出深层嵌套的代码.在Java中,例如可以用Java try-catch来处理异常,但它被认为是不好的解决方案,而且效率也非常低.在Ruby中我们处理异常begin-raise-rescue,我认为将它用于其他任务也很昂贵.
Ruby是否catch-throw真的是一个更有效的解决方案,begin-raise-rescue还是有任何其他理由使用它来打破嵌套块而不是begin-raise-rescue?
乔希的回答是正确的.我想添加更多关于catch-throw和的信息raise-rescue.
catch-throw用于流量控制,而raise-rescue用于异常/错误处理.不同的是:(流量控制)backtrace不需要catch-throw.相信我,导致Josh的主要raise-rescue运行缓慢catch-throw10次的主要原因是需要花费很多时间来创建对象.raise-rescuebacktrace
如果你想raise没有回溯,请使用语法:
raise <type>, <message>, <backtrace>
Run Code Online (Sandbox Code Playgroud)
查看我的要点.raise without backtrace比...快得多raise with backtrace.
2016年4月更新:
我更新了我的要点:
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |