Javaプログラムと同様に、例外発生をキャッチして、プログラムが異常強制終了してしまうのを避けることが可能だ。
try{ ... } catch(e){ // 例外が発生すると、このセンテンスでキャッチし、例外ハンドラを取得することができる ... // ここで例外が発生したことを通知したり、どのようにプログラムを終了させるかをコーディングする。 }
さて、トライ・キャッチ有無でどれくらいの違いがでるのでしょう? 実験してみましょう。
<script type="text/javascript"> var MAX=10000000; var createEl=(function (a) { return document.createElement(a); }); function test1(argv) { var TimerJSObj = new TimerJS(); for (var i=0; i %lt; MAX; i++){ createEl=(argv); } alert(TimerJSObj.stopTimer()); } function test2(argv) { var TimerJSObj = new TimerJS(); for (var i=0; i %lt; MAX; i++){ try{ createEl=(argv); } catch(e){ alert(e.message); } } alert(TimerJSObj.stopTimer()); } </script>
テストは、ブラウザのキャッシュを削除し、5回連続で計測した平均を採る。
ブラウザ | バージョン | 平均値(1) | 平均値(2) | 比較 |
---|---|---|---|---|
Mozilla | 1.7.13 | 6.074 (8) | 5.854 (8) | 103.8% |
Firefox | 3.5.5 | 0.14 (1) | 0.346 (3) | 40.5% |
Netscape Navigator | 9.0.0.6 | 2.862 (7) | 2.892 (7) | 99% |
Internet Explorer | 8.0.6001 | 1.638 (5) | 1.334 (5) | 122.8% |
Safari | 4.0.4 | 0.368 (2) | 0.042 (1) | 876.2% |
Chrome | 3.0.195.33 | 0.454 (3) | 0.194 (2) | 234% |
Opera | 10.10 | 0.834 (4) | 0.722 (4) | 115.5% |
Flock | 1.2.6 | 2.636 (6) | 2.79 (6) | 94.5% |
※括弧数字は速度順 |