2.5 How Octave Reports Errors

Last-modified: 2025-03-20 (木) 20:08:31

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」が未定義であることが検出されたことを示しています。関数内でエラーが発生した場合は、関数定義を含むファイルの先頭から行がカウントされます。外側の関数以外で発生したエラーの場合、行番号は入力行を示し、通常主プロンプト文字列内に表示されます。