2.5 Как Octave сообщает об ошибках
Octave сообщает о двух типах ошибок для неверных программ.
Ошибка синтаксического анализа возникает, если Octave не может понять то, что вы напечатали. Например, если вы неправильно написали ключевое слово,
octave:13> function y = f (x) y = x***2; endfunction
Octave сразу же ответит сообщением, подобным этому:
parse error:
syntax error
>>> function y = f (x) y = x***2; 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–2022 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/v5.2.0/Errors.html