在 Android 应用中用 HttpClient 来请求网络数据: 抛出的异常 IOException但是 IOException 范围太大, 我想获取网络超时异常,或者 其他异常。因为要提示用户网络到底出现什么问题了,网络无连接,网络超时等等。以前做的比较粗糙,网络无连接直接用的广播监听,网络故障直接捕捉 IOException.
判断网络问题,还有其它方法吗,不知道各位都是怎么处理这类网络问题的? 谢谢
判断网络问题,还有其它方法吗,不知道各位都是怎么处理这类网络问题的? 谢谢
UnknownHostException -> SocketException -> SocketTimeoutException -> IOException -> NullPointerException(httpclient 4.0.x在一些场合会出现)
但是系统提示 IOException 已经包含了这些 异常, 我不能把所有的异常都 handle 住吧。
if(e instanceof SocketTimeoutException){
//需要判断什么错误自己增加
}
但是系统提示 IOException 已经包含了这些 异常, 我不能把所有的异常都 handle 住吧。
不懂你那系统提示IOException是什么意思?出现什么异常,给什么提示,如下所示
try {
// your code
} catch (UnknownHostException e) {
// do something
}catch (SocketException e){
// do something
}catch (SocketTimeoutException e){
// do something
} catch (IOException e) {
// retry
} catch (NullPointerException e) {
// retry
}
但是系统提示 IOException 已经包含了这些 异常, 我不能把所有的异常都 handle 住吧。
不懂你那系统提示IOException是什么意思?出现什么异常,给什么提示,如下所示
try {
// your code
} catch (UnknownHostException e) {
// do something
}catch (SocketException e){
// do something
}catch (SocketTimeoutException e){
// do something
} catch (IOException e) {
// retry
} catch (NullPointerException e) {
// retry
}你试过吗? 如果试过的话,应该知道我是什么意思。我也描述不了那么细,不过还是非常感谢。
但是系统提示 IOException 已经包含了这些 异常, 我不能把所有的异常都 handle 住吧。
不懂你那系统提示IOException是什么意思?出现什么异常,给什么提示,如下所示
try {
// your code
} catch (UnknownHostException e) {
// do something
}catch (SocketException e){
// do something
}catch (SocketTimeoutException e){
// do something
} catch (IOException e) {
// retry
} catch (NullPointerException e) {
// retry
}你试过吗? 如果试过的话,应该知道我是什么意思。我也描述不了那么细,不过还是非常感谢。
用httpclient时,这个是经过验证的,一些开源的项目也是这么做的