java – 我有一个由于某种原因没有被捕获的ConnectException

我正在使用一个使用套接字的Android应用程序.我有一个名为initializeStreams()的函数,它打开套接字并尝试连接.如果无法建立连接,则此函数将抛出ConnectException.但由于某种原因,在调用具有ConnectException的catch块的initializeStreams()的代码中,日志打印出自己的异常堆栈跟踪而不是去catch块.永远不会到达catch块,即使抛出了确切的异常.这是代码:

试块:

try {
        initializeStreams();

            /* other code */

    } catch (ConnectException e) {
        Log.i(TAG, "caught connect exception");

    }

initializeStreams():

    public void initializeStreams() throws ConnectException {
    try {
        Log.i(TAG, "Attempting to connect");

        requestSocket = new Socket(SERVER_ADDR, PORT);

                    /* other code */


    } catch (IOException e) {
        e.printStackTrace();
    }

我无法弄清楚这一点,所以任何帮助都会非常感激.

最佳答案
你需要将你的Exception链接到catch块中.请尝试以下方法:

public void initializeStreams() throws ConnectException {
try {
    Log.i(TAG, "Attempting to connect");

    requestSocket = new Socket(SERVER_ADDR, PORT);

                /* other code */


} catch(ConnectException e){
    throw e;
}

catch (IOException e) {
    e.printStackTrace();
}

转载注明原文:java – 我有一个由于某种原因没有被捕获的ConnectException - 代码日志