Photoshop用JSXで矩形選択していない状態でselectionのプロパティにアクセスすると謎のエラー

すごくニッチな内容です。

矩形選択していない状態で下記のスクリプトを実行すると、謎のエラーが起こってスクリプトが中断されます。

var selection = activeDocument.selection;
var bounds = selection.bounds; // -> ここでエラー
alert("Hi!"); // -> 沈黙

念のため、hasOwnProperty()でプロパティの存在をチェックしてみてもtrueが出る。

var selection = activeDocument.selection;
alert( selection.hasOwnProperty('bounds') ); // -> true

最後にtry-catchしてみる。

var selection = activeDocument.selection;
var bounds;
try {
  bounds = selection.bounds;
} catch(e) {
  alert(e); // -> エラー: 該当する要素はありません。
}

ないならundefined返してください(切実)

解決策

try-catchで回避するしか思い浮かばないです。

var selection = activeDocument.selection;
var bounds;
try {
  bounds = selection.bounds;
} catch(e) {}