IT::Programing::Scripting::JavaScript::JavaScriptの例外発生処理 拡充版

http://d.hatena.ne.jp/perushaneko/20070320#1174391102 の続き。
try〜catchのより現実的なサンプルテンプレートです。
このテンプレートはかなり役に立ちそう( ̄ー ̄ニヤリ
結構載ってるときでないと、テンプレートって作れないしあと、備忘録用の栞。

function hogehoge ()
{
try {
/*
 *
 */

    if        ( window.opener.document.MOGE ) {
       //テスト環境
       
       /*
        *
        */
       
    } else if ( window.opener.document.OGE ) {
       //テスト環境
       
       /*
        *
        */
       
    } else {
        // 期待したJavaScriptオブジェクトが無い場合
        msg = msg + "想定しているJavaScriptオブジェクト\n\n";
        msg = msg + "\tMOGE\n";
        msg = msg + "\tHAGE\n";
        msg = msg + "\nいずれについても存在しません\n";
        throw msg;
    }

/*
 *
 */
} catch ( e ) {
  var msg="";
  // throw の場合の処理
  if(e.description==undefined){msg = "\n\n---------------------------\n"+e};
  
  err_msg("JavaScriptオブジェクトエラーエラー"+msg, e);
}

} // rt_screen_proc
function err_msg ( add_msg , e)
{
    // //////////////////////////////////////////////////////////////////////////////
    // エラーメッセージ組み立て
    msg =       'error!\n';
    msg = msg + 'error message : ' + e.description + '\n';
    msg = msg + 'error number  : ' + e.number + '\n';
    msg = msg + '\n\n' ;
    msg = msg + add_msg;
    msg = msg + '\n\n' ;
    msg = msg + '個別にご契約いただいているお客様は、' + '\n' ;
    msg = msg + 'HAGE Cop.のサポート窓口まで問合せください。' + '\n' ;
    msg = msg + '        email : moge@haeg.jp' ;
    alert( msg );
}

try 〜 catch は呼び出した下位の階層の関数でも有効
throwした場合、eにはthowの引数が直接入っているのでこうしたほうが無難