En mi experiencia, cualquier error detectado en un intento de captura en un disparador revertirá toda la transacción; es posible que pueda usar una transacción guardada. Creo que debe ver lo que sucede en "Algo más de sql" y determinar si puede escribir declaraciones case/if para detener el error.
Lo que puede hacer dependiendo de lo que esté haciendo es usar una transacción guardar y capturar eso en la captura
En tu código algo como esto
SAVE TRANSACTION BeforeUpdate;
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION BeforeUpdate;
return
END CATCH