在代号为一个
问题描述:
我建立使用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) {
}
在你的连接请求的代码为只是这样做一个班级。
答
尝试...
public void init(Object context) {
Display.getInstance().addEdtErrorHandler(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
evt.consume();
Throwable exception = (Throwable) evt.getSource();
}
});
}
伟大的...固定it..thanks! – Nikhil 2012-07-24 15:51:03