Цитата:
Сообщение от
Logger
Работал с COM. Вопрос был связан с тем как обертку try Catch сделал. По идее если есть внешняя обертка - вложенный try Catch и транзакции то может и не сработать.
Интересно можно ли это обойти. Т.е. заставить гарантировано выдавать корректное сообщение об ошибке.
М-да, внятно выражать свои мысли тоже надо уметь
Внешний Try...Catch - никак не мешает вложенному Try...Catch. Перехватывает ошибку всегда ближайший try...catch. Если надо "передать" исключение на предыдущий уровень, то просто после try..Catch генеришь исключение
throw error("Ошибка")
или возвращаешь "пустое" (ошибочное) значение, которое обрабатывается во внешнем методе.
А вот транзакция действительно мешает. Но тут ничего не поделаешь. Вне зависимости от того, кто именно сгенерил ошибку - COM или внутренний объект Axapta. При любом раскладе произойдет вылет в try...catch ближайший к началу транзакции самого верхнего уровня.