リンクをクリップボードにコピー
コピー完了
以前例外の処理について投稿しましたが、その続きとなります。
例えば、下記のように記述した場合はthrowしたErrorをcatchする事ができます。
itemNumber=0;
numberCheck ();
alert("処理を終了します");
function numberCheck(){
try{
if(itemNumber!=0){
throw new Error();
}
}
catch(e){
alert("エラーが発生しました");
}
}
しかし、下記のようなイベント内でthrowすると、catchできないようです。
try{
var dialog=new Window("dialog","用紙のサイズを入力",[0,0,300,200]);
dialog.add("statictext" , [40,-80,200,200] ,"用紙幅");
var width=dialog.add("edittext",[120,50,180,80] ,"100");
dialog.add("statictext" , [40,0,200,200] ,"用紙高さ");
var height=dialog.add("edittext",[120,90,180,120] ,"100");
var btnOK = dialog.add("button",[60,150,120,180],"OK",{name:'ok'});//OK
var btnCancel = dialog.add("button",[160,150,220,180],"Cancel",{name:'cancel'});
btnOK.onClick=function(){
alert("そのまま処理します");
dialog.close();
}
btnCancel.onClick=function(){
alert("エラー終了します");
throw new Error();
}
dialog.center();
dialog.show();
}
catch(e){
alert("エラーが発生しました。");
dialog.close();
}
alert("処理終了");
もしかすると単純にブロック範囲を間違えているだけかも知れませんが、皆様はこのような時はどのように記述しておられますでしょうか?
ご教示頂ければ幸いです。
リンクをクリップボードにコピー
コピー完了
おそらくスコープの問題だと思います。ハンドラー内でトラップしてみたらどうでしょう?