|
![]() |
#1 |
Banned
|
evalbuf('2*2')
|
|
|
За это сообщение автора поблагодарили: e@gle (1), CDan (1). |
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Выяснилось, что при выполнении функции 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; } |
|