JavaScript 第5版 - 6章 文(2)

JavaScript 第5版の「6章 文」、「6.16 throw文」~「6.20 JavaScript文のまとめ」(98~103ページ)を読み進めていきます。

6.16 throw文

throw expression;
  • JavaScriptでは、実行時にエラーが発生した場合、throw文で明示的に記述した場合に例外がスローされる。
  • expressionが返す値に型の制限はないが、普通はErrorオブジェクトかErrorオブジェクトクラスのサブクラスのインスタンスを返すようにする。
  • 例外がスローされると、例外ハンドラ(catch句)が見つかるまでコードブロック(関数呼び出しスタック)をさかのぼっていく。
  • 例外ハンドラが見つからない場合は、例外はエラーとしてユーザに報告される。
if (x < 0) throw new Error('x must not be negative');

6.17 try/catch/finally文

  • catch句とfinally句はそれぞれ省略可能だが、両方を省略することはできない。
  • tryブロックのコードが一部でも実行されると、それがどのような理由で終了したかに関わらず、finallyブロックのコードは必ず実行される。
  • finallyブロック内で処理が移動する場合は、この移動が行われる。例えば、例外をスローした場合は新しい例外に置き換わり、return文を使った場合は未処理の例外が残っていてもリターンする。

6.18 with文

with (object)
    statement
  • with文が実行されると、objectがスコープチェーンの先頭に追加され、実行後にスコープチェーンは元の状態に戻される。
  • with文を使用したコードは最適化が難しいため、実行速度が遅くなる可能性がある。
  • with文の本体に関数定義と変数の初期値設定がある場合、思いがけない振る舞いが起きることがある。

with文の使用は控えたほうが安全だと書かれていますが、具体例がないのでいまいちピンとこないですね。Core JavaScript 1.5 Reference:Statements:with - MDCやWeb上の情報で知識を補足しておくといいかもしれません。

6.20 JavaScript文のまとめ

102ページの「表6-1 JavaScript文のまとめ」に、JavaScriptの文の書式と意味がまとめられています。

コメント (0)

この記事へのコメントはまだありません。

コメントフォーム

トラックバック (0)

この記事へのトラックバックはまだありません。

この記事のトラックバックURI
http://dxd8.com/archives/63/trackback/
この記事のURI
http://dxd8.com/archives/63/