У меня есть ряд программ ABAP, которые вызываются динамически с использованием submit
. Чтобы убедиться, что он запустится, я сначала проверю синтаксис.
syntax-check for program programName message error line location word word.
if ( sy-subrc = 0 ).
submit (programName) exporting list to memory and return.
endif.
Проблема, которая у меня возникла, связана с логической ошибкой. Одна из программ в итоге пытается разделить число на ноль. Я не знаю, почему или могу ли я исправить эту ошибку, но я хотел бы изящно сообщить моему приложению, что произошла ошибка, а не останавливать все приложение.
Ради аргумента, скажем, программа:
report.
data(holeInEarth) = 1 / 0.
Я пытался использовать блок try catch, но в случае ошибки ничего не происходит.
try.
submit (programName) exporting list to memory and return.
catch cx_root into (err).
...do something with err...
endtry.
Я также пытался использовать catch system-exceptions
.
catch system-exceptions others = 1.
submit (programName) exporting list to memory and return.
endcatch.
Запуск отчета в фоновом режиме не вариант, потому что мне нужен результат. Есть ли способ отловить ошибки из этого утверждения?