Тема: TTS и try..catch
Показать сообщение отдельно
Старый 14.02.2009, 14:19   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Не совсем понятна только фраза:
Цитата:
перехват ошибки в try/catch подразумевает неявный вызов ttsabort
...........
catch //implicit ttsabort
На самом деле откат выполняется не при перехвате, а при генерации самого исключения... А перехвата ошибок при этом может и не быть..
Хотя вероятно, вы именно это и имели ввиду..

А так вообще всё верно.
Дополню цитатами из Inside Microsoft Dynamics AX 4.0:
Цитата:
Исключение (кроме конфликта обновления), генерируемое внутри транзакции, останавливает исполнение этого блока, после чего происходит откат всех вставок и обновлений, выполненных после первого оператора ttsBegin.
...........
Исполнение кода не может продолжаться внутри области действия транзакции, поэтому среда времени выполнения игнорирует операторы try и catch внутри транзакции. Это означает, что исключение, сгенерированное внутри транзакции, может быть перехвачено только за пределами транзакции.
...........
Исключение UpdateConflict - это единственное исключение, которое может быть перехвачено и внутри и снаружи действия транзакции.
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: alex55 (1).