Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java空指针异常不会终止程序_Java_Swing_Nullpointerexception - Fatal编程技术网

Java空指针异常不会终止程序

Java空指针异常不会终止程序,java,swing,nullpointerexception,Java,Swing,Nullpointerexception,我的问题很简单。当发生异常时,如何强制JAVA终止我正在编写的程序 我目前正在使用Swing,当抛出NullPointer异常时,程序将继续在后台运行:|以这种方式运行时,我只能从任务管理器关闭它。糟糕的是,当我再次运行同一个程序时,会创建第二个实例,我不知道为什么,但当我有同一个程序的多个实例时,有一次我得到null异常,下一次不是,下一次是,下一次不是。。。。完全随机性 提前谢谢 显然,您的程序似乎至少有一个bug,您可以尝试使用调试器来解决 至于您的问题,如果没有捕获到异常,它将终止您的程

我的问题很简单。当发生异常时,如何强制JAVA终止我正在编写的程序

我目前正在使用Swing,当抛出NullPointer异常时,程序将继续在后台运行:|以这种方式运行时,我只能从任务管理器关闭它。糟糕的是,当我再次运行同一个程序时,会创建第二个实例,我不知道为什么,但当我有同一个程序的多个实例时,有一次我得到null异常,下一次不是,下一次是,下一次不是。。。。完全随机性


提前谢谢

显然,您的程序似乎至少有一个bug,您可以尝试使用调试器来解决

至于您的问题,如果没有捕获到异常,它将终止您的程序。因此,如果您总是抛出异常,包括在main方法中,当发生异常时,将导致程序退出

然而,正如Mac在评论中所说


Swing应用程序中有一个事件循环。事件循环捕获的是可丢弃的(我相信),因此他无法以正常方式精确控制捕获的内容


显然,您的程序似乎至少有一个bug,您可以尝试使用调试器来解决

至于您的问题,如果没有捕获到异常,它将终止您的程序。因此,如果您总是抛出异常,包括在main方法中,当发生异常时,将导致程序退出

然而,正如Mac在评论中所说


Swing应用程序中有一个事件循环。事件循环捕获的是可丢弃的(我相信),因此他无法以正常方式精确控制捕获的内容

我们将感兴趣。捕获异常(理想情况下,您应该消除这些异常)

其思想是,您可以插入代理来包装Swing事件的调用,并捕获任何结果异常。然后,您可以决定要做什么-通知某人、退出等。

将引起关注。捕获异常(理想情况下,您应该消除这些异常)


其思想是,您可以插入代理来包装Swing事件的调用,并捕获任何结果异常。然后,您可以决定要做什么-通知某人、退出等。

您应该修复程序中的错误。如果未捕获到异常,则异常将终止程序,您可能正在捕获该异常。您始终可以使用
System.exit(0)退出程序

您应该修复程序中的错误。如果未捕获到异常,则异常将终止程序,您可能正在捕获该异常。您始终可以使用
System.exit(0)退出程序

Swing应用程序中有一个事件循环。事件循环捕获了可丢弃的内容(我相信),因此他无法以正常方式准确控制捕获的内容。太好了@Mac,你为什么不给出一个答案。我知道问题是什么,但不知道如何解决。我只是不想让海报把他的头发拔出来,想知道他如何将事件循环中的异常传播到他的主方法。@Mac看看这个Swing应用程序有一个事件循环。事件循环捕获了可丢弃的内容(我相信),因此他无法以正常方式准确控制捕获的内容。太好了@Mac,你为什么不给出一个答案。我知道问题是什么,但不知道如何解决。我只是不想让海报把他的头发拔出来,想知道他如何将事件循环中的异常传播到他的主方法中。@Mac看看这个@BrianAgnew Good find。我以为您可以在Swing中执行类似的操作,但不确定。是的,但在调用
push()之前需要测试
if(SwingUtilities.isEventDispatchThread()){
,因为此代码会将新事件推送到EDT,而不管EDT中的某些事件是否等待、解除分页或存在not@BrianAgnew很好的发现。我以为你可以在Swing中做类似的事情,但不确定。是的,但需要测试
if(SwingUtilities.isEventDispatchThread()){
在调用
push()之前
,因为此代码将新事件推送到EDT,而不管EDT中的某些事件是否等待、是否存在