catching unknown host exception in codename one

为君一笑 提交于 2020-01-15 08:57:08

问题


I am building an app using codename one

So the thing is, I need to access a URL using the app. THe URL brings back some result which I show on the screen.

SO I use these lines to do that :

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);

So, now , if the gprs is active, this code works fine.

BUT , if the GPRS is inactive, it throws an Unknow Host Exception

SO to catch this error, i TRIED to use a try catch block like this:

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

But, i still get the error in the form of a dialog in the app. How do i catch this error and put my own handling for it?

UPDATE 1:

Am not sure this is necessarily a codename one specific questions, or related to java ...so just help me out with this.


回答1:


Try this to handle generic errors for all connections:

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

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

Or override:

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

And:

protected void handleException(Exception err) {
}

In your connection request code to do this for just one class.




回答2:


Try it...

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

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

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


来源:https://stackoverflow.com/questions/11598241/catching-unknown-host-exception-in-codename-one

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!