我正在使用构建一个应用程序代号一 http://www.codenameone.com
问题是,我需要使用该应用程序访问 URL。该 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) {
}
And:
protected void handleException(Exception err) {
}
在您的连接请求代码中,仅对一个类执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)