Ajuda pra resolver IOException

Pessoal, boa noite,

Estou tentando fazer uma aplicação para celular usando exemplos de livros. Cheguei até a parte abaixo, mas tem alguma coisa errada que não consigo descobrir qual é a origem.
A maioria das vezes que tento usar a aplicação o programa cai no catch da IOException.
Alguém pode indicar o que posso fazer para resolver isso?

    class ImportaDocs extends Thread {
        
        public void run () {
            getTxtAlertas().setString("Recebendo dados... Aguarde...");
            switchDisplayable(null, getTxtAlertas());
            try {
                con = (HttpConnection)Connector.open(enderecoServerImporta + "?cMatricula=" + txtMatricula.getString() + "&cHora=" + getDataAtual());
                int status = con.getResponseCode();
                int ch = 0;
                String Docs = null;
                
                if (status == HttpConnection.HTTP_OK){
                    
                    iCelular = con.openInputStream();
                    bOCelular = new ByteArrayOutputStream();
                    
                    while ((ch = iCelular.read()) != -1) {
                        bOCelular.write (ch);
                    }
                    
                    Docs = new String (bOCelular.toByteArray());
                    
                    bOCelular.close();

                    if (Docs.length() > 0) {
                        
                        nTotalDocs = 0;
                        
                        if (Docs.startsWith("OK  ")) {
                            getTxtAlertas().setString("Recebendo dados... Aguarde...");
                            switchDisplayable(null, getTxtAlertas());
                            
                            montaListaGravacao ();
                            
                            for (int nCount = 4; nCount < Docs.length(); nCount += 125) {
                                //System.out.println (Docs.substring(nCount, nCount + 125));
                                gravaDoc (Docs.substring(nCount, nCount + 125));
                            }
                            getAlMensagens().setString("   " + nTotalDocs + " Docs recepcionados.");
                            switchDisplayable(getAlMensagens(), getLsMenu());
                        }
                        else if (Docs.startsWith("ERRO")) {
                            getAlMensagens().setString(Docs.substring(4).trim());
                            switchDisplayable(getAlMensagens(), getLsMenu());
                        }
                        else {
                            getAlMensagens().setString("Sinal de rede fraco, tente novamente...");
                            switchDisplayable(getAlMensagens(), getLsMenu());
                        }
                    }
                    else {
                        getAlMensagens().setString("Não há dados disponíveis.");
                        switchDisplayable(getAlMensagens(), getLsMenu());
                    }
                }
                else {
                    getAlMensagens().setString("Erro : Problemas no servidor, tente novamente mais tarde...");
                    switchDisplayable(getAlMensagens(), getLsMenu());
                }
            }
            catch (ConnectionNotFoundException e){
                getAlMensagens().setString("ImportaDocs: Não foi possível estabelecer conexão.");
                switchDisplayable(getAlMensagens(),getLsMenu());
            }
            catch (IOException e) {
                getAlMensagens().setString("ImportaDocs: Problemas com o IO da aplicação.");
                switchDisplayable(getAlMensagens(),getLsMenu());
            }
            catch (Exception e) {
                getAlMensagens().setString("Ocorreu um erro durante a tentativa de recepção dos Docs, tente novamente dentro de minutos ou procure a central.");
                switchDisplayable(getAlMensagens(),getLsMenu());
            }
            finally {
                try {
                    if (con != null) 
                        con.close();
                    if (bOCelular != null) 
                        bOCelular.close();
                }
                catch (Exception e){
                    getAlMensagens().setString("ImportaDocs: Problemas no tratamento dos erros.");
                    switchDisplayable(getAlMensagens(),getLsMenu());
                }                
            }
        }

Poste a Exception inteira, fica mais fácil.
Por exemplo, o que é esse txtMatricula?

cola o StackTrace da IOException aqui cara.

Coloquei o celular pra exibir a mensagem de erro aqui e apareceu o seguinte “java.io.IOException:Error in HTTP operation”

j0nny esqueci de te responder, o txtMatricula é só um campo que o usuário digita o número da matrícula, para eu poder colocar no link e assim localizar só os documentos que estão pendentes para ele.

Uma coisa é quase certa, seu erro está aqui:

Mas para saber melhor, poste seu stacktrace todo.

java.io.IOException: response empty
at com.sun.midp.io.j2me.http.Protocol.readResponseMessage(), bci=56
at com.sun.midp.io.j2me.http.Protocol.finishRequestGetResponseHeader(), bci=37
at com.sun.midp.io.j2me.http.Protocol.sendRequest(), bci=47
at com.sun.midp.io.j2me.http.Protocol.sendRequest(), bci=3
at com.sun.midp.io.j2me.http.Protocol.getResponseCode(), bci=5
at Entregas$ImportaDocs.run(Entregas.java:1295)

E ae pessoal, alguém pode me ajudar?