且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

JavaFX默默地吞噬了拖动侦听器中引发的异常

更新时间:2023-11-19 23:53:10

看来本机方法 WinDnDClipboard.push(Object [],int) - 由 GlassClipboard.cpp 默默地吞下异常。可以在调试器中看到对Throwable.getMessage()的回调,但是没有异常打印到控制台。

It appears that native method WinDnDClipboard.push(Object[], int) - backed by GlassClipboard.cpp swallows the exception silently. A call back to Throwable.getMessage() can be seen in the debugger but no exception is printed to the console.

此文件的Java 9版本( http://hg.openjdk.java.net/openjfx/9-dev/rt/file/1a3f128518cd/modules/javafx.graphics/src/main/native-glass/win/GlassClipboard.cpp )对Utils.cpp中定义的 CheckAndClearException(env); 进行额外调用,但这与RT-35400无关。这还没有被移植到Java 8。

The Java 9 version of this file (http://hg.openjdk.java.net/openjfx/9-dev/rt/file/1a3f128518cd/modules/javafx.graphics/src/main/native-glass/win/GlassClipboard.cpp) has an additional call to CheckAndClearException(env); as defined in Utils.cpp, however this is against RT-35400 which appears unrelated. This has not been backported to Java 8.