与Dart一起使用Geolocation时的例外情况

时间:2012-10-27 00:44:50

标签: geolocation dart

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

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

我试过

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

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

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

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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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。