Показать сообщение отдельно
Старый 16.04.2014, 21:27   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Запуталась в 3 соснах (( или как отловить исключение
Есть код , типа такого
X++:
try
{
    ttsbegin;
    ....
    stdClass.Method();

    myClass.Method();
    ....
    ttscommit;
}
catch
{}
в stdClass.Method();
код приблизительно такой:
X++:
try
{
    ttsbegin;
    ....
    if (!someValidation())
         throw error();....
    ttscommit;
}
catch
{}
в результате, естественно, как только вызываемый класс выбрасывает ошибку, то она перехватывается в catch уже моего класса, а мне надо , чтобы исполнение кода не прерывалось и перешло на строку
X++:
myClass.Method();
.

(То есть, суть в том, что вычисления в stdClass не критичны для моего класса и мне достаточно сообщения в инфологе, что они закончились с ошибкой и нужно продолжить выполние кода )
Retry не подходит, тк он на самое начало вернет моего try блока.
Замена исключения в stdClass на ttsAbort тоже не поможет, тк ttsAbort откатывает не только текущую транзакцию, но и внешние тоже(.

Как перехватить ошибку, выбрасываемую stdClass классом и продолжить выполнение кода?