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