簡體   English   中英

StackTraceElement中沒有行號

[英]no line numbers in StackTraceElement

我添加了一個帶有以下代碼的UncaughtExceptionHandler:

        GWT.setUncaughtExceptionHandler(new   
          GWT.UncaughtExceptionHandler() {  
          public void onUncaughtException(Throwable e) {  

              StackTraceElement[] elements = e.getStackTrace();

              String stackTrace = "";
              for (int i = 0; i < elements.length; i++)
              {
                  stackTrace += elements[i] + "\n";
              }

              PlatformServices.instance().log().debug("caught unhandled exception: " + e + " ; Stack:\n" + stackTrace);
          }
        });

問題是只有每個StackTraceElement的函數名有效。 所有其他信息都是默認的,例如,行號為-1,類名未知。

我想知道我做錯了什么?

在GWT應用程序執行期間,此信息可能無法使用。 檢查核心StackTraceElement.java類,方法toString() 只有在> = 0時才打印出lineNumber值。 它可能是負面的並非不可能。

我使用UncaughtExceptionHandler進行的測試給了我完全相同的結果(在運行時沒有引用行號)。 在混淆模式下編譯時,我甚至無法獲取文件名,因此輸出看起來像:

com.google.gwt.core.client.JavaScriptException: (TypeError): Cannot read property 'g' of null 
Unknown.iPb(Unknown Source) 
Unknown.gPb(Unknown Source) 
Unknown.npd(Unknown Source) 
...

不是真正的解決方案,但至少你並不孤單:)。

嘗試在模塊文件中設置它

<set-property name="compiler.stackMode" value="emulated" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM