소켓을 사용하는 Android 응용 프로그램에서 작업 중입니다. 소켓을 열고 연결을 시도하는 initializeStreams()라는 함수가 있습니다. 이 함수는 연결을 설정할 수없는 경우 ConnectException을 발생시킵니다. 그러나 어떤 이유로 ConnectException에 대한 catch 블록이있는 initializeStreams()를 호출하는 코드에서 로그는 catch 블록으로 이동하는 대신 예외에 대한 자체 스택 추적을 인쇄합니다. 정확한 예외가 발생하더라도 catch 블록에는 절대 도달하지 않습니다.어떤 이유로 잡히지 않은 ConnectException이 있습니다.
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();
}
나는이 알아낼 수 없습니다, 그래서 어떤 도움이 많이 주시면 감사하겠습니다.
코드에 게시 한 유일한 소켓 작업이 ConnectException을 throw하지 않기 때문에 그 이유가 무엇인지 알 수 없습니다. 나머지 코드는 게시하십시오. – Th0rndike
예. 소켓 초기화 이전에 로그가 인쇄 된 후 catch 블록에있는 로그 대신 ConnectException 스택 추적이 인쇄됩니다. initializeStreams()는 ConnectException을 던지는 유일한 함수이고 첫 번째 코드 단편은 호출 된 유일한 곳입니다. – aakbari1024
무엇을 의미합니까? 그 소켓 작업은 예외를 throw하는 것으로, 스택 추적에서 그렇게 말하며, 현재 내 프로그램에서 유일한 소켓 작업입니다. – aakbari1024