&#x27;try&#x27; is relatively slow compared to other control logic, as allowing an exception to be thrown involves constructing an exception stack trace. This is slow in all VMs I know. Theoretically you could detect that the trace isn&#x27;t used and remove it through escape analysis, but this is not easy, or you could do some crazy thing with lazily creating the stack trace, but that&#x27;s a research project.