2016-09-24 33 views
0

即时通讯开发一个原生的Android应用程序,没有错误,但logcat的说如何处理java.net.ConnectException有效

Caused by: java.net.ConnectException: failed to connect to some ip. 
    Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT 

由Android指出警戒线 - 工作室 -

HttpResponse httpResponse = httpClient.execute(httpPost); 

当您的应用程序无法与LAN上的本地服务器通信时,会发生此问题。

任何人都可以建议我有条件处理这个Exceptions efferntly? 只想我的应用程序没有错误和警告。

可能我们可以使用一个try - catch?至少,只是为了显示吐司“连接错误”:)

+0

这里提到http://hpp.com/files/32954067/java-net-connectexception-failed-to-connect-to-10-0-0-2-port-80-connect-fai和from这也太http://stackoverflow.com/questions/20028648/client-socket-times-out-when-connecting-to-server –

+0

其实我早就做了一些研究,gottcha! – Vikrant

回答

0

连接是依赖于各种真实世界™巧合的东西之一,如在Wi-Fi热点的范围内,并且您的信号不会被淹没另一个Wi-Fi信号在同一个通道上。因此保证有时它会失败。

既然你说“没有错误”,这意味着错误是在某处处理的,不知何故,也许在你无法控制的代码中。但是,错误得到处理的事实并不意味着沟通没有中断。如果客户端和服务器之间有连续的数据流,那么当前数据的连续性会有差距。传输可能已被重试,并且成功,但延迟。如果您发现延迟,并且您正在排除故障,则确实想知道原因。因此,这些日志消息很重要。

所以,你需要习惯他们,并学会忽略他们,直到有一天你会解决一些与连接有关的问题时,你会学会也爱他们。

总结:“连接错误”吐司并不是很有帮助,因为在现实世界的使用场景中,它们会一直弹出。允许记录错误可能是你可以做的唯一的事情,也可能是最好的。

+1

感谢支持朋友。 – Vikrant