5

Geolocation を使用して Dart で作業します。コールバックに渡される geoposition オブジェクトには、常に高度、速度、または方向があるとは限りません。私の質問は、例外がスローされないようにこれをチェックする方法ですか?

例外処理を使用できることはわかっていますが、状況を検出したいと考えています。少なくとも Dart エディターでは、例外がキャッチされたとしても、デバッガーは実行を一時停止するようです...

私はもう試した

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

これらは例外を引き起こします。デバッガーでは、高度はオブジェクトで使用可能なフィールドとして表示されません。デバイスでは、適切な設定があれば、高度が含まれます。

どうすればこれに対処できますか? 確かに、オプションのフィールドがあるかどうかをテストする方法はいくつかあります。

繰り返しますが、フィールドは表示されず、null として表示されず、存在しません。

助けてくれてありがとう。

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 に答える