次の Dart コードがあるとします。
void main() {
try {
try {
throw null;
} catch(e) {
throw null;
} finally {
print('first');
}
} finally {
print('second');
}
}
http://try.dartlang.org経由でブラウザでこのコードを実行すると
非常に期待される結果を生み出しました。
first
second
Uncaught Throw of null.
しかし、このコードを Dart VM で実行すると、非常に予期しない結果になります。
second
Unhandled exception: Throw of null.
finally
これは、最初の終了ブロック ( ) が実行されないように見えます。
この例外処理メカニズムの動作が理解できません。
もちろん、これはバグだと推測できます。しかし、例外処理はあらゆるシステムの基礎です。Dart 開発者はこの格差をどのように説明できますか?
PS
「プログラミングについて」というテーマに関連するこの質問は、ここで質問するのが適切な場所と時間だと思いますか?