Показать сообщение отдельно
Старый 18.04.2008, 11:46   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,712 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Работал с COM. Вопрос был связан с тем как обертку try Catch сделал. По идее если есть внешняя обертка - вложенный try Catch и транзакции то может и не сработать.

Интересно можно ли это обойти. Т.е. заставить гарантировано выдавать корректное сообщение об ошибке.
М-да, внятно выражать свои мысли тоже надо уметь

Внешний Try...Catch - никак не мешает вложенному Try...Catch. Перехватывает ошибку всегда ближайший try...catch. Если надо "передать" исключение на предыдущий уровень, то просто после try..Catch генеришь исключение

throw error("Ошибка")

или возвращаешь "пустое" (ошибочное) значение, которое обрабатывается во внешнем методе.

А вот транзакция действительно мешает. Но тут ничего не поделаешь. Вне зависимости от того, кто именно сгенерил ошибку - COM или внутренний объект Axapta. При любом раскладе произойдет вылет в try...catch ближайший к началу транзакции самого верхнего уровня.