Are try-blocks expensive in time and space?
Created May 4, 2012
Terence Parr Exceptions are essential to writing robust code and, fortunately, are
extremely cheap until you actually throw an exception; the
try costs you very little (usually the cost of marking the
stack pointer). Exceptions are for exceptional behavior and so an
expensive throw operation is usually ok as they are not executed
very often.
Do not use exceptions for control-flow in your program.
On the other hand, I do one of exactly one legitimate use of exceptions for control-flow: backtracking algorithms in very large complicated programs (and I'd limit it to auto generated programs due to the "goto-like" behavior they cause). I have found that they don't affect parsing speed much when backtracking over large input streams if I'm smart about it (only backtracking when totally necessary).