Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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_Exception_Linked List_Queue_Nosuchelementexception - Fatal编程技术网

Java 即使在进行紧急检查后,也不会出现任何异常

Java 即使在进行紧急检查后,也不会出现任何异常,java,exception,linked-list,queue,nosuchelementexception,Java,Exception,Linked List,Queue,Nosuchelementexception,Im使用Java中的LinkedList,并将其定义为: private final Queue<Collection<String>> data = new LinkedList<Collection<String>>(); 这在大多数情况下都很有效。但在一些罕见的未知场景下,它抛出了异常 java.util.NoSuchElementException 异常被抛出 data.remove(); 根据我的理解,如果在空队列上尝试删除,则会引

Im使用Java中的LinkedList,并将其定义为:

private final Queue<Collection<String>> data = new LinkedList<Collection<String>>();

这在大多数情况下都很有效。但在一些罕见的未知场景下,它抛出了异常

java.util.NoSuchElementException
异常被抛出

data.remove();
根据我的理解,如果在空队列上尝试删除,则会引发上述异常。 但在尝试删除之前,我已经检查了isEmpty。 那它为什么会抛出这样一个例外呢? 我看过很多类似的帖子,但都没有得到令人信服的答案。因为我已经在队列中进行了同步,所以我不明白发生这种情况的原因


非常感谢您的帮助。

您能提供一个完整的、可重复的示例来说明此行为吗?但在某些罕见的未知场景下,它会引发异常。。。这是问题的一部分。为了解决问题,您需要确定引发异常的场景。您是否在代码中的其他位置修改列表?可能会使用synchronized?是的,当添加到列表中时,我不会对其进行同步。因此,也不要使用synchronized添加
data.remove();