« 帝王復活 | Home | 文字化けかと思ったら »

Jul 172006

ちょっとメモ

icon_flash8.jpgtry{...}catch(){...}
のなかでundefinedの値の判定ができない。
try..catch..の問題というよりは、他に問題があるような気もしているけど、なんにしてもcatch以前にtryの中で判定してもそれすらスルー。

try {
if (a == undefined) {
throw new Error("error");
}
} catch (arg) {
trace(arg);
}

普通に書いたら問題ないのに、Classの中に埋め込んでいるのがやばいのか?それとも他の問題なのかな?この辺便利になった反面トラブルになったとき探すのがたいぎいわー。

簡単なクラスでテスト。

class Test_try_catch{
function Test_try_catch(){

}
function check(arg_obj){
try {
trace(arg_obj.id);
if (arg_obj.id == undefined) {
throw new Error("error");
}
} catch (err) {
trace(err);
}

}
}
----
[タイムライン]
obj = {};
obj.id = b;
aaa = new Test_try_catch();
aaa.check(obj);

うーん、正常に動作・・。
なんか他に原因があるのか・・?ちなみにタイムライン上では正常に判定できる。
Classの中に持っていくと判定できず・・。private変数にしてたっけな?
調べる。

1 Comment

あぁぁぁぁぁ!!
わかったよママン。
変数を一度全角->半角変換を行って放り込んでいたから、undefinedがStringになってたよ・・涙。
変換ロジックでundefined,nullとかをはじくようにしなくてはー。

Leave a comment

Search and Archives