Spec-Zone.ru › Octave 7

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–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/v7.2.0/Errors.html

Spec-Zone.ru

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