![]() |
#5 |
Участник
|
Выяснилось, что при выполнении функции evalBuf с некорректным выражением в качестве аргумента (например, с нечисловыми символами), молча прерывается выполнение текущего класса (формирование отчета, например).
Приведенный ниже пример работает и для некорректных выражений, и для случаев деления на 0: X++: real getResult(str _function) { XPPCompiler comp=new XPPCompiler(); real ret; _function = 'real result(){return ' + _function + ';}'; if(comp.compile(_function)) { try ret = runBuf(_function); catch (Exception::Error) infolog.clear(); } return ret; } |
|