The whole point try/catchis that it is nonlocal. You can exit several cycles with a stroke, break out of nested function calls, and escape from any place where you end up. ifcannot do this and is not intended. I do not know about overhead, but I strongly and consciously suspect that he has much more than he would if. Ultimately, use the tool to work: they are not interchangeable.
Well, they are, but they should not be changed :)
UPDATE: , try/catch . . . , , ; . , - , ( ).