ソケットを使用する Android アプリケーションに取り組んでいます。ソケットを開いて接続を試みる initializeStreams() という関数があります。接続を確立できなかった場合、この関数は ConnectException をスローします。しかし、何らかの理由で、ConnectException の catch ブロックを持つ initializeStreams() を呼び出すコードでは、ログは catch ブロックに移動する代わりに、例外の独自のスタック トレースを出力します。正確な例外がスローされていても、catch ブロックにはまったく到達しません。コードは次のとおりです。
try ブロック:
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();
}
私はこれを理解できないので、どんな助けでも大歓迎です。