Добавьте указанную пользователем информацию в трассировки стека Java

Есть ли способ добавить дополнительную информацию в трассировку стека java?

Я разрабатываю интерпретатор для языка сценариев и хотели бы видеть соответствующие строки кода сценария в java stacktrace.

Результат может выглядеть примерно так:

java.lang.NullPointerException 
at package.IPF_Try.execute(IPF_Try.java:76) called in script.scr:155
at package.IPF_Block.execute(IPF_Block.java:304) 
at package.IPF_If.execute(IPF_If.java:105)  called in script.scr:130
at package.IPF_Block.execute(IPF_Block.java:304) 
at package.IPF_Main.execute(IPF_Main.java:147) 
...

или так:

java.lang.NullPointerException 
at package.IPF_Try.execute(IPF_Try.java:76)
  --- called in script.scr:155 ---
at package.IPF_Block.execute(IPF_Block.java:304) 
at package.IPF_If.execute(IPF_If.java:105)
 --- called in script.scr:130---
at package.IPF_Block.execute(IPF_Block.java:304) 
at package.IPF_Main.execute(IPF_Main.java:147) 
...

Это значительно упростит отладку, к сожалению, Google не смог найти ничего для этого.

Единственный способ, который я мог придумать, - это динамически генерировать множество классов с методами, имя которых содержит нужную мне информацию и которые просто вызывают следующий метод в трассировке стека - но это кажется как трата (перманентной) памяти и циклов процессора для меня.

6
задан ChristophK 29 August 2011 в 07:41
поделиться