Исключение внутри блока ttsbegin/ttscommit передает управление на следующий оператор после ttscommit самого верхнего уровня.
Т.е. обработчик должен выглядеть так
X++:
try
{
ttsbegin;
// что-то делаем
ttscommit;
}
catch
{
// обрабатываем исключение
}
Если у вам несколько вложенных ttsbegin/ttscommit, то исключения надо ловить на первом уровне