Groovy JSR223及其隐蔽异常

Groovy JSR223及其隐蔽异常,groovy,jsr,jsr223,Groovy,Jsr,Jsr223,有没有办法从JSR223获得更好的错误消息?我试图用它来运行Groovy脚本,每当执行过程中出现问题时,我都会得到一些异常,这些异常都是真实的。以下是一个例子: org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce. invoke(PojoMetaMethodSite.java:270) at org.codehaus.groovy.runti

有没有办法从JSR223获得更好的错误消息?我试图用它来运行Groovy脚本,每当执行过程中出现问题时,我都会得到一些异常,这些异常都是真实的。以下是一个例子:

  org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.   invoke(PojoMetaMethodSite.java:270)
      at    org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
    at   org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
     at Script1.search(Script1.groovy:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
    at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:227)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:77)
    at Script1.processEvent(Script1.groovy:12)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) 

恐怕我只能想到两件事

  • 使用Intellij IDEA,它会压缩堆栈跟踪,这样您就只能初步看到与代码相关的位。我认为社区版现在有groovy支持,所以你可以免费使用
  • 擅长扫描这些堆栈跟踪以查找代码。在您的示例Script1.groovy第28行尝试将方形销钉装入圆孔中
  • 您可以将IDE/日志读取器配置为突出显示*.groovy行或类似的内容

    对不起,没什么比这更有用的了


    别担心,这不是你的问题,这些stacktraces是为了扰乱你的思维而设计的

    粘贴脚本的搜索方法(特别是第28行)会有帮助:-)你也可以捕获这种东西,并使用StackTraceUtils类来清理它?