1

如果我放了一个无意义的 url,则不会引发异常,并且我的其余代码都不会执行,即使是调用连接方法的 asynctask 的其余部分也不会执行。

try {
        socketCliente.connect(new InetSocketAddress("f", port), 2000);

    } catch (UnknownHostException e) {
        getError("Host doesn't exist");
        return -1;
    } catch (IOException e) {
        getError("Could not connect: The host is down");
        return -1;
    }
4

2 回答 2

0

很奇怪,能不能多加两行如下,看看有什么效果。

另外,在日志中,请注意这两行之间的时间差。

try {
    Log.w("SOCKET", "Trying to connect...");
    socketCliente.connect(new InetSocketAddress("f", port), 2000);
    Log.w("SOCKET", "Connected. No exception");

} catch (UnknownHostException e) {
    getError("Host doesn't exist");
    return -1;
} catch (IOException e) {
    getError("Could not connect: The host is down");
    return -1;
}
于 2013-05-19T08:35:43.700 回答
0

添加另一个 catch 语句。

catch ( Exception e ) {
    Log.d(TAG, e.getMessage(),e);
    Toast.makeText(getApplicationContext(), "Unexpected Error:" + e.getMessage(), Toast.LENGTH_LONG).show();
}

这将写入日志并弹出一个 toast 来告诉你发生了什么。

于 2013-05-18T12:12:23.770 回答