我正在开发一个小测试应用程序,从网上抓取一些数据(在本例中为XKCD漫画)并将其显示在手机上。这是我第一次涉足Android编程,我对Java不太熟悉,所以我不是太野心勃勃。我成功地用Java编写了一个程序,它在Android上执行了我想要做的同样的功能,并且工作得非常好,但是我的一些代码在Java中起作用,导致Android中的一个强制关闭。特别是这个小代码块:
try {
home = Jsoup.connect("http://www.xkcd.com").get();
Log.i("connect to home","completed");
} catch (IOException e) {
Log.i("connect to home","failed");
}
每次运行时,我都会在日志中看到“失败”消息。如果我删除了我的代码的那一部分,我的应用程序运行得很漂亮所以我知道错误必须在那里。如果你想知道的话,“home”被定义为我的代码中的其他文档。在Java中运行良好,我也很奇怪,在Eclipse开发Android时,它强迫我用try-catch块来包围该语句,但在Java中我不需要try-catch。任何想法为什么这不起作用?如果您需要更多信息或更多我的代码,我会提供它(尽管我试图提供完整的故事)。
非常感谢您的帮助
答案 0 :(得分:1)
每次运行时,我都会在日志中看到“失败”消息。
记录异常e
。它包含有关如何/为何/失败的信息。你绝不应该在没有充分理由的情况下压制异常(即你确切知道你在做什么)。
我也很奇怪,在Eclipse开发Android时,它强迫我用try-catch块包围该语句,但在Java中我不需要try-catch。
可能你已经在方法上有throws IOException
,如下所示:
public void foo() throws IOException {
Document document = Jsoup.connect(url).get();
// ...
}
然后你确实不需要把它放在try-catch中。