Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ruby catch-throw and efficiency

catch in Ruby is meant to jump out of deeply nested code. In Java e.g. it is possible to achieve the same with Java's try-catch meant for handling exceptions, it is however considered poor solution and is also very inefficient. In Ruby for handling exceptions we have begin-raise-rescue and I assume it is also to expensive to use it for other tasks.

Is Ruby's catch-throw really a more efficient solution then begin-raise-rescue or are there any other reasons to use it to break nested blocks instead of begin-raise-rescue?

like image 937
wrzasa Avatar asked Nov 20 '12 23:11

wrzasa


1 Answers

In addition to being the "correct" way to get out of control structures, catch-throw is also significantly faster(10 times as fast in my testing). Check out this gist for my code and results.

like image 83
Josh Avatar answered Sep 25 '22 22:09

Josh