在代号为一个

问题描述:

我建立使用codename one在代号为一个

一个应用程序捕获未知的主机异常所以事情是,我需要使用的应用程序访问的URL。网址带回了我在屏幕上显示的一些结果。

所以我用这些行做到这一点:

ConnectionRequest c = new ConnectionRequest() { 

       protected void readResponse(InputStream input) throws IOException { 


        ByteArrayOutputStream bs = new ByteArrayOutputStream(); 

        int ch; 

        while ((ch = input.read()) != -1) { 

         bs.write(ch); 
        } 
        serverOutput = new String(bs.toByteArray()); 
        bs.close(); 
       } 
      }; 
      c.setUrl("My URL HERE"); 
      c.setPost(false); 


      NetworkManager.getInstance().addToQueueAndWait(c); 

所以,现在,如果GPRS是活跃的,这个代码工作正常。

,但如果GPRS是无效的,它抛出一个不明主机异常

以抓住这个错误,我试图用一个try catch块这样的:

try{ 
NetworkManager.getInstance().addToQueueAndWait(c); 
} 
catch(Exception e) 
{ 
Sys.out.pln(e.troString()); 
} 

但是,我仍然在应用程序中以对话框的形式获取错误。我如何捕获这个错误,并把我自己的处理呢?

更新1:

我不知道这必然是一个代号具体问题,或与Java ...所以只是帮我出这一点。

尝试使用此方法处理一般错误的所有连接:

NetworkManager.getInstance().addErrorListener(new ActionListener() { 

    public void actionPerformed(ActionEvent evt) { 
     //handle your error here consume the event 
     evt.consume(); 
    } 
}); 

或覆盖:

protected void handleErrorResponseCode(int code, String message) { 
} 

和:

protected void handleException(Exception err) { 
} 

在你的连接请求的代码为只是这样做一个班级。

+1

伟大的...固定it..thanks! – Nikhil 2012-07-24 15:51:03

尝试...

public void init(Object context) { 
     Display.getInstance().addEdtErrorHandler(new ActionListener() { 

      public void actionPerformed(ActionEvent evt) { 
       evt.consume(); 

       Throwable exception = (Throwable) evt.getSource(); 
      } 
     }); 
    }