目次
こんにちは、ともです。
プログラミング言語を学習していると、エラーと戦う日々が続きますよね。
英文で出たエラーでも、焦らずに落ち着いて読み進める事が必要になってきます。
言語に依存せずプログラミング言語が教えてくれるエラーには3種類存在します。
- パースエラー(シンタックスエラー)
- 実行時エラー(Fatal Error)
- 警告・注意(Warning Notice)
この記事では、プログラミングエラーの3種類である、パースエラー(シンタックスエラー)、実行時エラー(Fatal Error)、警告・注意について理解をまとめたいと思います。
パースエラー(シンタックスエラー)
パースエラー、シンタックスエラーというエラー名は一番目にするエラーではないでしょうか。
パースエラーとは文法が誤っている場合にでるエラーです。
- セミコロンが抜け
- 括弧が閉じれていない
といったとても単純なエラーです。
なのでこのエラーが出た時はちょっとした書き間違えですので、間違え探しをエラーコードを読みながら探していきましょう。
また、パース(parse)という処理は、あなたが書いたプログラムを実行環境が構文解析しデータ構造に変換する処理となります。
- ブラウザがHTMLファイル解析し、DOMを生成する
このような解析処理をパース(parse)というのですが、パースエラーという事は文法に沿っておらず、解析不可能ってことですね。
また、シンタックス(syntax)の意味は『構文』という意味です。パースエラーと同様に構文に誤りがある事が原因で発生します。
インタプリタ言語のソースコードが解析される流れは下記であり、
- ソースコード→字句解析→構文解析(パースエラー箇所)→意味解析→実行
パースエラーの発生場所は実行よりも前の段階であることがわかります。
よって、1行もプログラムは実行されず終わります。
実行時エラー(Fatal Error)
実行時エラーとは、その名の通り実行時に発生するエラーです。
インタプリタ言語の場合、解析の流れは次でした。
- ソースコード→字句解析→構文解析→意味解析→実行(実行時エラーの箇所)
実行時エラーというのは、解析後の実行段階で発生するエラーである事がわかります。
実行時エラーは問題のコードを実行した段階でエラーが発生するので、プログラム自体は実行されます。
問題のある箇所まで実行した時点で、そのエラーが警告・注意・Fatal Error(致命的なエラー)かによって以降の挙動が変化します。
- Fatal Error(致命的なエラー)の場合は、実行が停止する
- 警告や注意の場合は、警告・注意内容を表示してプログラムは実行される
実行時エラーの挙動には上記のような違いがある事がわかりました。
まとめ
パースエラー、実行時エラーについて、理解をまとめました。
- パースエラーは、文法ミスなどの解析エラーのため実行されず終了
- 実行時エラーは、解析後の実行段階でのエラーであり、Fatal Error・警告・注意で挙動が変わる
- Fatal Errorは実行が停止する
- 警告・注意はエラーを表示し実行を続ける