5

使用地理定位在 Dart 中工作。传递给回调的地理位置对象并不总是具有高度、速度或方向。我的问题是如何检查以防止引发异常?

我知道我可以使用异常处理,但更愿意检测这种情况。至少在 Dart 编辑器中,调试器似乎会暂停执行,即使异常被捕获......

我试过了

if(solution.coords.altitude==null) { ... }
if(solution.coords.altitude is num) { ... }

这些会导致异常。在调试器中,高度不显示为对象中的可用字段。在具有正确设置的设备上,高度包括在内。

我该如何处理?当然有一些方法可以测试可选字段是否存在。

重申一下,这些字段没有显示,它们不显示为空,它们不存在。

提前感谢您的帮助。

4

1 回答 1

1

返回什么coords?我很难相信它altitude甚至不可用,因为它是一个吸气剂。也许整个coords(即Coordinates对象)是null

尝试:

if (solution.coords is! Coordinates) {
    print('No coords!');
}

抛出异常是因为它没有实现:http ://src.chromium.org/multivm/trunk/webkit/Source/WebCore/bindings/dart/custom/DartCoordinatesCustom.cpp

如果你作为 JavaScript 运行,一切都会很好,因为它不使用 Dart VM。

于 2012-10-27T11:20:56.303 回答