Получение номера строки или трассировки полного стека для исключений в gremlin-groovy скрипте - PullRequest
1 голос
/ 14 февраля 2012

У меня есть скрипт gremlin-groovy, который перемещается по невероятно шумной базе данных. Есть много случаев с отсутствующими краями или свойствами. Когда я предполагаю, что ребро или свойство существует, и не выдается исключение, я получаю очень простой вывод, подобный этому:

javax.script.ScriptException: java.util.IllegalFormatConversionException: d != java.lang.String

Я бы хотел сделать так, чтобы, когда скрипт встречал фатальное исключение, как показано выше, он предоставлял дамп стека или, по крайней мере, номер строки, чтобы я мог отлаживать, где это произошло, подобно тому, как java может печатать трассировка полного стека при фатальных исключениях.

Любые предложения о том, как получить лучший дамп?

1 Ответ

0 голосов
/ 15 февраля 2012

Я рекомендую использовать для этого терминал Gremlin.

gremlin$ ./gremlin.sh

         \,,,/
         (o o)
-----oOOo-(_)-oOOo-----
gremlin> a bad thing
No such property: bad for class: groovysh_evaluate
Display stack trace? [yN] y
groovy.lang.MissingPropertyException: No such property: bad for class: groovysh_evaluate
    at     org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)

Если у вас нет такой роскоши (например, через REST-сервер), то вы можете захотеть поместить некоторые интеллектуальные «printlns» в вашОбход.

my.long.traversal.sideEffect{println 'I am here'}.is.very.long
...