我正在开发一个Java库,用于基于JavaFX的Java GUI。在手动测试期间,我可能会生成以下错误,并打印到控制台-GUI挂起,但窗口保持打开状态:
java.util.concurrent.CompletionException: java.lang.IllegalStateException: Cannot load xxx.xxx.xxx.main.tab.editor.workspace.canvas.canvas
没有Stacktrace,没有行号,没有导致异常的类,没有我可以处理的东西。
我如何获得这个的堆栈跟踪?
我已经尝试了以下方法:
- 我没有使用
java -jar Application.jar
运行打包的jar,而是尝试使用mvn exec:java -Dexec.mainClass="xxx.xxx.xxx.App"
运行主类 - 我尝试使用verbose标志:
java -verbose -jar Application.jar
- 在其他线程中,我尝试使用
-XX:-OmitStackTraceInFastThrow
标志
除了这一行之外,没有任何内容将错误消息更改为其他内容。
编辑:异常不会在项目自己的代码中捕获,但是它可能会被库捕获-所以我希望这可能是JavaFX自己做的事情,并且有一种方法可以修复它?我猜JavaFX应该是项目中并发的主要来源。
1条答案
按热度按时间s3fp2yjn1#
我找到了罪魁祸首,它确实是something JavaFX-y捕获错误的原因:
异常中的类是一个JavaFX...模块 (“组件”,不管是什么,它有一个CanvasView和CanvasPresenter类,并且在一个包含所有资源(如.fxml和.properties文件)的文件夹中,很难搜索到基本概念)
异常在
CanvasPresenter
initialize
方法(CanvasPresenter
实现Initializable
接口)中抛出,在那里我可以将有问题的代码 Package 在try {...} catch(Exception e) {e.printStackTrace();}
中并获得更多信息。