private void someFunction(String html) {
Document doc = Jsoup.parse(html);
Element vol = doc.select(CSS_PATH).first();
Log.d("Vol", vol.text());
Log.d(TAG, "This gets printed");
Float.parseFloat(vol.text());
Log.d(TAG, "BUT THIS ONE NOT");
}
这两个对象是Jsoup库的元素。
Document doc = Jsoup.parse(html);
Element vol = doc.select(PATH.PEAK_DOWN_VOL).first();
vol.text()
返回包含浮点值的String
。
Log.d("Vol", vol.text()); // logs something similar to 'Vol: 12.4'
但是在调用Float.parseFloat(peakDownVol.text());
之后,此类中的 Log.d
将完全停止。但是Activity类中的Log.d
似乎工作正常。< / p>
如果我将Float.parseFloat(vol.text());
更改为Integer.parseInt(vol.text());
,则会毫不费力地记录后续语句。
我有很多数字解析要做。所以我想知道为什么会发生这种情况?
答案 0 :(得分:0)
如果你想让方法的其余部分无论如何都要运行,你应该在本地捕获潜在的异常,这样程序就可以继续执行方法的其余部分而不是冒泡回调用栈,直到找到异常处理程序或因缺少一个而崩溃:
Log.d(TAG, "This gets printed");
try {
Float.parseFloat(vol.text());
} catch (NumberFormatException e) {
e.printStackTrace(); //leave evidence in the log
}
Log.d(TAG, "So does this");