STEP 7-4

例外

例外とはどういうものか

 誤ったコードを書いてしまった時に「エラーが発生する」という表現をよく用いると思いますが、このことについてもう少し掘り下げてみましょう。

 開発者ツールのConsoleで、下記のようにまだ定義していない関数名を入れて実行してみましょう。

unknownFunction()

 すると次のようにエラーの種類とともに赤い文字でメッセージが表示されます。

Uncaught ReferenceError: unknownFunction is not defined

  at <anonymous>:1:1

 この時の英語の先頭部分は一見読みにくい訳になっています。「捕らえられていないReferenceError」とは一体何のことでしょうか。実は「エラーを捕らえる機能」がJavaScriptを含めた多くの言語には搭載されています。先の内容にちょっと細工をして、以下のような内容で実行してみます(Console上で試しやすいように一行で示しましたが、適宜改行入れても同じ意味合いです)。

try { unknownFunction() } catch(e) { console.log('エラーが起きました') }

 すると「エラーが起きました」と表示されるのみで、特にエラーと認識されるような赤い文字も英語の表現も発生しませんでした。正常に処理が終了したかのように見えます。

 try - catchを利用すると「tryの後のブロックで囲った範囲でエラーが発生すると、catchの後のブロックが呼ばれる」という動きが実現できます。つまり何かエラーが起きた時の「プランB」のようなものを作っておくことができるのです(今回のプランBは「エラーが起きました」とconsole.logすることです)。プランBがない場合には、赤い文字のエラー表示をJavaScriptの処理系が行ってくれます。 ...

Get ステップアップJavaScript フロントエンド開発の初級から中級へ進むために now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.