RuntimeException - это тип исключения. Где это перехватится, зависит от типа исключения, сгенерированного методом create. Если тип исключения равен или расширяет RuntimeException, он будет перехвачен там, в противном случае он будет перехвачен в исключении. Это вопрос?
Обычно входить в блок перехвата, который будет перебрасывать исключение, обычно не рекомендуется.
Кроме того, если это RuntimeException, вы не знаете, инициализирована ли calTransaction, поэтому установка состояния может привести к NullPointerException. Если это то, чего вы пытаетесь избежать, вы можете заставить его вызвать какой-то тип InitializationException или переместить его в предыдущую попытку / перехват.