Spec-Zone.ru › Octave 9

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–2026 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.4.0/Errors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API