Java 我的android程序意外地从接收方法转到捕获块

Java 我的android程序意外地从接收方法转到捕获块,java,android,Java,Android,在我的android应用程序的一部分中,有这样一个代码: try { socket.setSoTimeout(100); socket.receive(receivedAckPacket); } catch (Socke

在我的android应用程序的一部分中,有这样一个代码:

            try {                        
                socket.setSoTimeout(100);                                                
                socket.receive(receivedAckPacket);
            }
            catch (SocketTimeoutException e) {
                socket.send(p);
            }
调试之后,当程序流到达“socket.receive(receivedAckPacket)”时,我的程序流转到catch块!为什么会发生这种情况?

添加

e.printStackTrace();

您将看到异常发生的原因。

因为它超时了吗?我不知道你在问什么,也不知道这个行为有什么“意外”之处,因为如果你在100毫秒内没有收到任何东西,它应该这样做,而显然你没有。你的意思是,我必须在“socket.setSortimeout(100)”中增加100,因为发生了异常。遗憾的是,您没有在任何地方记录该异常。一个简单的
e.printStackTrace()
内部catch块会打印出这个问题的答案。