在我的JavaFX 8应用程序中,我有一个运行循环并偶尔更新UI的线程。在这个线程的某处,有一个例外会导致我的悲伤。发现它不会是一个问题,除了工作线程上的异常似乎没有记录到System
输出与主程序线程上的输出相同。我的意思是,当我运行程序时,如果main()
中断了,IntelliJ会将异常消息和堆栈跟踪打印到运行视图(标准输出,AFAIC)。另一方面,如果在我的线程中发生什么事情,我不会得到相同的详细输出。事实上,大多数时候,我什么都没有得到 - 只是一个神秘的非功能性项目。JavaFX:线程异常未记录到系统输出
我需要采取另一个步骤来捕获工作线程中的错误吗?我的环境是否配置错误?这使得调试几乎不可能 - 任何帮助表示赞赏!
你能在这里发布代码和堆栈跟踪错误吗? – 2014-10-09 05:37:18
根据您的线程模型,异常不会传播到主线程,它们只会杀死它们抛出的线程。启动线程时,您可能会尝试将try/catch添加到“run”方法中。 – 2014-10-09 06:39:50
@SamuelÅslund你是对的。我尝试添加try/catch到线程任务,并开始看到异常。随着一些更多的搜索,我发现这是某些Runnables的默认行为。我不清楚它为什么这样工作,但至少现在我可以继续调试。谢谢! – user1202809 2014-10-09 15:56:44