【Apple Script】javascript の中のエラーメッセージを取得する方法

Apple Script の中で、

do JavaScript を使う時に、エラーが出ても、

Apple Script 側に 返り値がないとだけ言われて、

javascript の エラー内容がわかりません。

なので、エラー内容をtry - catch で拾って、渡すようにしました。


on err()
    return "___ERR___"
end err

on documentElement(args)

    set {err_cnt_:aErrCnt} to args & {err_cnt_:0}
    tell application "Safari"
        set val to do JavaScript "
        res = (function() {
try {
    return document.outerHTML;
} catch(e) {
    return my err() + e.message;
}
        }());
        " in document 1
    end tell

    if (offset in val of my err()) > 0 then
        --log val
        if aErrCnt > 2 then
            return val
        else
            set aErrCnt to aErrCnt + 1
            delay 0.5
            return my documentElement({err_cnt_:aErrCnt})
        end if
    end if

    return val
end documentElement

エラーが出たら、同じ関数の呼び出しを3回くらいチャレンジして、それでもダメならエラー内容をそのまま返します。

(ERRnull is not an object (evaluating 'ele.outerHTML'))