2010年4月16日金曜日

InDesignスクリプトで、アクセスするだけで落ちるオブジェクトの回避方法。

スクリプトを使っているとたまに、プロパティでアクセスするだけで落ちる(プロパティを持たない?)オブジェクトに出会うことがある。読み込んでプロパティを調べようとするだけで落ちるので,なんともしようがない。
Try & catchをうまく使って、それを回避してみる。
function checkProp(obj){
try{
var p=obj.properties;
return true;
}catch(e){
return false;
}
};

var obj=app.activeDocument.selection[0];
if(checkProp(obj)){
//実際の処理
}
こんな感じで,一回プロパティ(存在するはずのプロパティなら何でもよい)を調べて、エラーになるならfalseを返すようにしておく。
それで一度アクセスして大丈夫ならtrue、だめならfalseを返す。これでいけるはず……。

0 件のコメント: