【发布时间】:2018-07-18 04:40:11
【问题描述】:
我有这个代码:
fun String?.toDoubleOrZero(): Double
{
if (null == this) return 0.0
return try { this.toDouble() } // <-- Line #67
catch (e: NumberFormatException) { 0.0 }
catch (e: java.lang.NumberFormatException) { 0.0 } //Just to make sure
}
我已经明确处理了NumberFormatException。我什至添加了 Java 的NumberFormatException 以确保。但是我仍然有很多这样的崩溃报告:
Fatal Exception: java.lang.NumberFormatException: Invalid double: "35°45'39.2"N"
at java.lang.StringToReal.invalidReal(StringToReal.java:63)
at java.lang.StringToReal.parseName(StringToReal.java:230)
at java.lang.StringToReal.parseDouble(StringToReal.java:254)
at java.lang.Double.parseDouble(Double.java:295)
at *********.toDoubleOrZero(***.kt:67)
at ...
这怎么可能?我需要做什么?
注意:我什至无法重现这种情况,我的代码在测试时可以正常工作,但是我在 Crashlytics 中有很多这样的崩溃报告。
编辑:我发现这只发生在装有 Android 4 的 HTC 设备上!
【问题讨论】:
-
"注意:我什至无法重现这种情况,我的代码在测试时可以正常工作,但是我在 Crashlytics 中有很多这样的崩溃报告。"你确定它们来自同一个版本吗?
-
@AlexeyRomanov 是的,它发生在我的应用程序的所有版本上,但我只是注意到它只发生在 Android 4 和 HTC 设备上!
标签: android exception-handling kotlin