Ao escrever um cálculo em nosso código que envolve divisão, uma regra é garantir que não teremos valores zerados no momento do cálculo para não ocorrer um dump.
Abaixo um exemplo de código onde uma divisão por 0 não foi tratada corretamente:
Ao ser executado, o código gerou dump:
Caso o tratamento dos valores não seja realizado antes, uma maneira de evitar o dump é tratar a exceção no momento do cálculo com comando CATCH SYSTEM-EXCEPTIONS:
Fazendo desta forma, o dump não ocorrerá e o resultado será 0.
Abaixo um exemplo de código onde uma divisão por 0 não foi tratada corretamente:
DATA: v_resultado TYPE p, v_valor_1 TYPE p, v_valor_2 TYPE p. v_valor_1 = 10. v_valor_2 = 0. v_resultado = v_valor_1 / v_valor_2.
Ao ser executado, o código gerou dump:
Caso o tratamento dos valores não seja realizado antes, uma maneira de evitar o dump é tratar a exceção no momento do cálculo com comando CATCH SYSTEM-EXCEPTIONS:
DATA: v_resultado TYPE p, v_valor_1 TYPE p, v_valor_2 TYPE p. v_valor_1 = 10. v_valor_2 = 0. CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 4 OTHERS = 8. v_resultado = v_valor_1 / v_valor_2. ENDCATCH.
Fazendo desta forma, o dump não ocorrerá e o resultado será 0.
Tags
Dicas abap