GWT客户端“抛出异常”导致编译问题

时间:2010-12-08 12:38:51

标签: gwt opencalais

我尝试使用来自名为j-calais的api的get结果,然后将结果放在网页上,我在客户端编写所有代码,但它无法正确编译,不知道为什么???请帮忙。源代码如下:

没有明显的错误出现,但它无法成功编译.....非常感谢:

public void onModuleLoad(){     //为库存数据创建表。     stocksFlexTable.setText(0,0," Type");     stocksFlexTable.setText(0,1," Name");

// Assemble Add Stock panel.
addPanel.add(newSymbolTextBox);
addPanel.add(addStockButton);

// Assemble Main panel.
mainPanel.add(stocksFlexTable);
mainPanel.add(addPanel);
mainPanel.add(lastUpdatedLabel);

// Associate the Main panel with the HTML host page.
RootPanel.get("stockList").add(mainPanel);

// Move cursor focus to the input box.
newSymbolTextBox.setFocus(true);

//在“添加”按钮上侦听鼠标事件。     addStockButton.addClickHandler(new ClickHandler(){       public void onClick(ClickEvent事件){

                        try {
                            addStock();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

  }
});
// Listen for keyboard events in the input box.
newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() {
  public void onKeyPress(KeyPressEvent event) {
    if (event.getCharCode() == KeyCodes.KEY_ENTER) {  
            try {
                addStock();
            } catch (Exception e) {
                e.printStackTrace();
            }
  }
  }
});

}

private void addStock() throws Exception {
  final String url_s = newSymbolTextBox.getText().toUpperCase().trim();
  newSymbolTextBox.setFocus(true);
  newSymbolTextBox.setText("");
  int row = stocksFlexTable.getRowCount();


  CalaisClient client = new CalaisRestClient("ysw5rx69jkvdnzqf6sgjduqj");
    System.out.print("read success...\n");
     URL url = new URL(url_s);    
     CalaisResponse response = client.analyze(url);         
        for (CalaisObject entity : response.getEntities()) {
            System.out.println(entity.getField("_type") + ":" 
                               + entity.getField("name"));
            stocks.add(entity.getField("_type"));
            stocksFlexTable.setText(row, 0, entity.getField("_type"));
            stocksFlexTable.setText(row, 1, entity.getField("name"));
          }

        for (CalaisObject topic : response.getTopics()) {
            System.out.println(topic.getField("categoryName"));
          }

}

}

1 个答案:

答案 0 :(得分:0)

GWT仅处理未经检查的例外,因此您可以抛出运行时例外

或编写自己的异常扩展从运行时异常,然后它不会导致任何编译时间问题

void f() throws NullPointerException // will not cause any problem because it is Runtime exception so unchecked

void f() throws IllegalAccessException // it is checked exception so there will be problem at compile time