Descobrir onde a exceção OO do ABAP Objects pipocou

O depurador do ABAP sempre me surpreende com uma nova funcionalidade toda vez que engasgo com o café e esbarro sem querer no mouse, fazendo-o clicar aleatóriamente em algum canto do depurador. Desta vez descobri o botão exceção, que permite descobrir onde o objeto de exceção foi criado através do comando RAISE EXCEPTION.

Este botão aparece apenas para objetos de exceção, na aba principal Objetos, e então em Exibição individual.

Região da tela de depuração em que o botão 'Exceção' aparece.

É possível usar o menu de depuração para colocar pontos de parada nestas instruções, mas se eu já sei onde do programa Z a exceção é capturada, pode a partir deste ponto ir voltando relativamente no tempo e ver em qual linha cada exceção foi lançada.

Se você, assim como a platéia do Sílvio Santos, só acredita vendo, copie este report e veja a mágica acontecer. Duas exceções são lançadas e encadeadas, e o debugger mostrará exatamente onde o crimecada exceção aconteceu.

report zr_example_exceptions_newdebug.
class lcx_exception_demo definition
inheriting from cx_static_check.
endclass. "lcx_exception_demo DEFINITION
data: o_exception type ref to cx_static_check.
try.
raise exception type lcx_exception_demo.
catch cx_static_check into o_exception.
try.
raise exception type lcx_exception_demo
exporting
previous = o_exception.
catch cx_static_check into o_exception.
endtry.
endtry.
" It's showtime! Check the magic inside the new debugger screen,
" checking the o_exception object.
break-point.

Infelizmente esta forma não permite visualizar os valores das variáveis naquele trecho que o RAISE EXCEPTION foi executado após ter saído de lá, mas isto também ocorre com as exceções clássicas e exceções de módulos de função.

A exceção mais recente (primeira da cadeia, a última lançada) A exceção mais antiga (última da cadeia, a primeira lançada)
dummy dummy

Lembra daqueles TRY/CATCH sem nenhum tratamento e muito menos um INTO que você já ousou a colocar no código só por ser dia de maldade? Pois então, agora tem (mais) um motivo para abandonar esta má prática e fazer melhor.