Octave 中的錯誤訊息主要分為語法錯誤(parse error)與執行時錯誤(run-time error)兩種。
語法錯誤(parse error)
在使用 Octave 時常常會碰到輸入的指令語法錯誤導致 Octave 無法執行的問題,此時 Octave 會出現錯誤訊息,並且標明錯誤出現的位置,例如:
3 *** 2
會出現錯誤訊息:
parse error:
syntax error
>>> 3 *** 2
^
Octave 會使用 ^
符號將錯誤出現的位置標示出來,在 Octave 中的運算子只有 **
,沒有 ***
,因此出現第三個 *
時,Octave 無法解讀所以回報錯誤。
此種錯誤又稱為 evaluation error,發生在程式實際執行的時候,例如:
自行定義個函數 f(x)
:
function y = f(x) y = x^2 endfunction
呼叫此函數:
f()
產生的錯誤訊息:
error: `x’ undefined near line 2 column 9
error: called from:
error: f at line 2, column 7
此錯誤訊息是由最內層的錯誤發生處所產生的,其所提供的 trackback 可以協助使用者找出錯誤的位置。第一行錯誤訊息表示在程式第 2
行的第 9
個字元的位置有個 x
變數沒有定義,若是錯誤發生在函數中,則行號是由函數定義檔的開頭起算,若是發生在函數之外,則會以 Octave 輸入指令的行號為準(這個行號預設會顯示在提示符號中)。
第二行與第三行錯誤訊息表示此錯誤發生在 f()
函數之中,若是 f()
函數是被另一個函數所呼叫的,例如 g()
函數,則錯誤訊息還會多出一行:
error: g at line 2, column 16
藉由這個函數呼叫的列表,使用者可以快速的追蹤錯誤發生的經過。