ランタイムエラー

ランタイムエラー(runtime error)とは、プログラムの実行時に、何らかの記述ミスやファイルの消失、破損などによって発生するエラーのことをいう。

ランタイムエラーは、インタプリタ型言語のソースコードでよく発生する。コンパイラ型のCやC++などでは、ソースコードをバイナリコードに変換してから実行する。これをコンパイルというが、これらのプログラミング言語ではコンパイラによってエラーが発見されるため、実行形式のプログラムは生成されない。そのため、インタプリタ型に比べるとランタイムエラーが発生しにくいという特徴がある。

しかし、インタプリタ型では、翻訳と実行を少しずつ繰り返しているため、エラーをあらかじめ防ぐことが困難になっている。ここでいう翻訳とは人間が記述した文字列を機械語マシン語と呼ばれるバイナリに変えること。コンパイラ型のようなあらかじめ用意されたテスト環境みたいな工程がほぼないため、ランタイムエラーがよく発生するのである。シンタックスエラーはどちらでも同じように生じる。

例えば、ブラウザで取り込んだjavascriptに何らかの不具合があると、スクロールできないことがよくある。これはランタイムエラーによってソースコードを読み込んでる途中から処理を停止しているためである。ajaxや非同期通信などで読み込んでいる場合は、その部分がブラウザ上に表示されなくなる。一方、ループ(ルーチン)処理にミスがある場合は、何度も繰り返している内にフリーズすることもあるが、こちらはランタイムエラーではなく、いわゆる不具合であり、プログラムの論理構造がおかしいだけである。

インタプリタ型言語には、javascriptの他にもperlやphp、VBScript、BASIC、Python、Rubyなどがある。これらのプログラミング言語は、いずれも翻訳と実行を繰り返しているため、ランタイムエラーが生じやすいといえる。

ランタイムエラーの意味を簡潔に説明すると

プログラム実行時に生じるエラーのこと。