调用Integer.parseInt后,Log.d()停止工作(INVALID_INT)

时间:2015-05-13 18:30:04

标签: android android-studio android-logcat

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());,则会毫不费力地记录后续语句。

我有很多数字解析要做。所以我想知道为什么会发生这种情况?

1 个答案:

答案 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");