自作コンパイラの部屋 > オブジェクト指向プログラム言語としてのJavaScript > 21.try...catchによる例外処理

21.try...catchによる例外処理

 IE5.0の機能拡張(厳密には、IE5.0にバンドルされるMSスクリプトエンジン Ver5.0の機能)として、Java言語風のtry...catchによる例外処理が可能になりました。 MSスクリプトエンジン Ver5.0のダウンロード・サイトから、ドキュメントやスクリプトエンジンがダウンロード可能です。
 古典的なJavaScriptは非常にシンプルな言語で、エラー処理などはあまりサポートする機能がありません。極力データの事前チェックなどにより、エラーを起こさないようなプログラミングが要求されます。  しかし、大規模なスクリプトを記述する場合には、上記はかなりきつい制限になります。IE5.0(以降)のtry...catch命令は、この制約に対するMicrosoft流の回答といえます。
 もっとも、今のところtry...catchをサポートするブラウザはIE5.0だけ[*1]なので、ブラウザサイドのスクリプトにtry...catchを使用できる局面は限れられると思われます。

【例】
    var x;
    document.write("スクリプトの始まり<BR>");
    try {
        x = y;       /* y は定義されていない */
    } catch(e) {
        document.write("error = " + e.description + "<BR>");
        document.write("error # = " + e.number + "<BR>");
    }
    document.write("スクリプトの終わり<BR>");
実行結果:


 [*1] 追記(1999/10/20)
 この件について、村脇さんという方からメールを頂きました。try...catchはIE(ないしMicrosoft)の独自拡張ではなく、 Netscape自身がドキュメント化した仕様で定義されており、Mozillaでもサポートされているとのご指摘でした。ありがとうございました。

目次