2.5 オクターブによるエラーの報告方法
無効なプログラムについて、2種類のエラーが報告されます。
Octaveが入力内容を理解できない場合は、解析エラーが発生します。例えば、キーワードのスペルを間違えると
octave:13> function z = f (x, y) z = x ||| 2; endfunction
Octaveは即座に次のようなメッセージを返します。
parse error:
syntax error
>>> function z = f (x, y) z = x ||| y; endfunction
^
ほとんどの解析エラーでは、Octaveはキャレット (‘^’) を使用して、入力を理解できなかった行のポイントをマークします。この場合、論理演算子または演算子 (||) のキーワードのスペルが間違っていたため、Octaveによってエラーメッセージが生成されました。これまでのコードは正しいが、最後の「|」が理解されていないため、3番目の「|」でエラーをマークしました。
別の種類のエラーメッセージが評価時に発生します。これらのエラーは、プログラムの実行時または評価時に発生するため、実行時エラーまたは評価エラーと呼ばれます。たとえば、前の関数定義の間違いを修正した後で、次のように入力したとします。
octave:13> f () Octave will respond with
error: `x' undefined near line 1 column 24 error: called from: error: f at line 1, column 22
このエラーメッセージにはいくつかの部分があり、エラーの原因を特定するのに役立つ情報が含まれています。メッセージは最も内側のエラーのポイントから生成され、外側の式と関数呼び出しのトレースバックを提供します。
上記の例では、最初の行は、関数または式の1行目と24列目の近くで、変数「x」が未定義であることが検出されたことを示しています。関数内でエラーが発生した場合は、関数定義を含むファイルの先頭から行がカウントされます。外側の関数以外で発生したエラーの場合、行番号は入力行を示し、通常主プロンプト文字列内に表示されます。