2.5 Как Octave сообщает об ошибках ¶
Octave сообщает о двух типах ошибок для некорректных программ.
Ошибка синтаксического анализа возникает, если 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 сгенерировало сообщение об ошибке, потому что ключевое слово для логического оператора или (||) было неправильно написано. Ошибка была отмечена у третьего символа «|», поскольку код до этого был корректным, но окончательный символ «|» не был понят.
Другой класс сообщений об ошибках возникает во время выполнения. Эти ошибки называются ошибками времени выполнения или иногда ошибками вычисления, потому что они возникают, когда ваша программа выполняется или вычисляется. Например, если после исправления ошибки в предыдущем определении функции вы введёте
octave:13> f ()
Octave ответит
error: `x' undefined near line 1 column 24 error: called from: error: f at line 1, column 22
Это сообщение об ошибке состоит из нескольких частей и содержит много информации, помогающей определить причину ошибки. Сообщения генерируются с точки наибольшей ошибки и предоставляют трассировку вложенных выражений и вызовов функций.
В приведённом выше примере первая строка указывает, что переменная с именем «x» была обнаружена как неопределённая около строки 1 и столбца 24 какой-то функции или выражения. Для ошибок, возникающих внутри функций, строки считаются с начала файла, содержащего определение функции. Для ошибок, возникающих вне вложенной функции, номер строки указывает номер строки ввода, который обычно отображается в строке основного приглашения.
Вторая и третья строки сообщения об ошибке указывают, что ошибка произошла внутри функции f. Если функция f была вызвана из другой функции, например, g, список ошибок завершился бы ещё одной строкой:
error: g at line 1, column 17
Эти списки вызовов функций делают довольно простым отслеживание пути, пройденного вашей программой до возникновения ошибки, и исправление ошибки перед повторной попыткой.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Errors.html