Таблица ошибок список сообщений главных стандартных ошибок

## Содержание

- Сообщения
  - Проверка количества аргументов
  - Проверка типов и кодировки контейнера и содержимого
  - Проверка размеров
  - Проверка значений
  - Связи между аргументами
  - Файлы, папки
  - Динамические системы
  - Разное
- Примеры
- См. также

## Описание

Эта страница даёт неполный список главных стандартных предопределённых сообщений об ошибках, исползуемых в самом Scilab. Эти сообщения так же могут быть использованы во внешнем коде.

Какой бы ни был язык текущей сессии Scilab, используется английская версия сообщений в качестве идентификатора сообщения с помощью системы перевода gettext(). В самом Scilab используются перечисленные сообщения.

Пожалуйста, избегайте использования двойных кавычек " внутри сообщения: вместо них должны использоваться одинарные кавычки '.

Сообщение может включать в себя некоторые метки, начинающиеся с символа "%". Эти метки соответствуют Си-подобному синтаксису (см. правила преобразования printf()). Они предназначены для замены настраиваемым содержимым для того, чтобы настроить стандарт под локальные данные благодаря msprintf. Чтобы включить в такое сообщение собственном символ "%" используйте "%%".

Стандартные сообщения должны начинаться с "%s" и заканчиваться "\n". Стоящее впереди "%s" будет заменено именем функции, в которой произошла ошибка.

### Проверка количества аргументов

Входные аргументы:

    "%s: Wrong number of input arguments.\n"
    "%s: Wrong number of input arguments: %d expected.\n"
    "%s: Wrong number of input arguments: %d or %d expected.\n"
    "%s: Wrong number of input arguments: %d to %d expected.\n"
    "%s: Wrong number of input arguments: At least %d expected.\n"
    "%s: Wrong number of input arguments: At most %d expected.\n"

Выходные аргументы:

    "%s: Wrong number of output arguments: %d expected.\n"
    "%s: Wrong number of output arguments: %d to %d expected.\n"

### Проверка типов контейнера и содержимого

Неверный тип содержимого:

    "%s: Argument #%d: Boolean(s) expected.\n"

    "%s: Argument #%d: Encoded integer expected.\n"
    "%s: Argument #%d: Encoded integer of type (%s) expected.\n"
    "%s: Argument #%d: Integer expected.\n"         // целочисленное или десятичное кодирование
    "%s: Argument #%d: Decimal integer expected.\n"
    "%s: Argument #%d: Decimal number expected.\n"
    "%s: Argument #%d: Decimal or complex number expected.\n"
    "%s: Argument #%d: Complex number expected.\n"
    "%s: Argument #%d: Complex number not supported.\n"

    "%s: Argument #%d: Polynomial expected.\n"
    "%s: Argument #%d: Rational fraction expected.\n"
    "%s: Argument #%d: Polynomial or rational expected.\n"
    "%s: Argument #%d: Real polynomial expected.\n"
    "%s: Argument #%d: Real rational expected.\n"

    "%s: Argument #%d: Text(s) expected.\n"

    "%s: Argument #%d: Graphic handle expected.\n"
    "%s: Argument #%d: Graphic handle of type ''%s'' expected.\n"

    "%s: Argument #%d: Function expected.\n"
    "%s: Argument #%d: Transfer function expected.\n"
    "%s: Argument #%d: Linear state space expected.\n"
    "%s: Argument #%d: %s expected.\n"

    "%s: Type %s is not implemented.\n"

Неверный контейнер:

    "%s: Argument #%d: List expected.\n"
    "%s: Argument #%d: Cell expected.\n"
    "%s: Argument #%d: Structure expected.\n"
    "%s: Argument #%d: M-list expected.\n"
    "%s: Argument #%d: T-list of type %s expected.\n"
    "%s: Argument #%d: %s expected.\n"

Неверное кодирование:

    "%s: Argument #%d: Sparse matrix expected.\n"
    "%s: Argument #%d: Dense matrix expected.\n"

### Проверка размерности и размеров контейнера

Размерности / размеры / форма контейнера:

- "Массив" применяется к селл-массивам и структурам
- "Скаляр", "Строка", "Столбец" применяются к матрицам и некоторым другим массивам (селл-массивам и структурам)

    "%s: Argument #%d: Non-empty matrix expected.\n"
    "%s: Argument #%d: Empty matrix expected.\n"
    "%s: Argument #%d: Scalar (1 element) expected.\n"
    "%s: Argument #%d: Row expected.\n"
    "%s: Argument #%d: Column expected.\n"
    "%s: Argument #%d: Vector expected.\n"
    "%s: Argument #%d: Row with %d elements expected.\n"
    "%s: Argument #%d: Column with %d elements expected.\n"
    "%s: Argument #%d: Vector with %d elements expected.\n"

    "%s: Argument #%d: Matrix expected.\n"
    "%s: Argument #%d: Square matrix expected.\n"
    "%s: Argument #%d: %d-by-%d matrix expected.\n"
    "%s: Argument #%d: Matrix with %d rows expected.\n"
    "%s: Argument #%d: Matrix with %d columns expected.\n"
    "%s: Argument #%d: Matrix with %s rows expected.\n"    // %s является наиболее общей; она может использоваться для диапазона
    "%s: Argument #%d: Matrix with %s columns expected.\n" // то же самое
    "%s: Argument #%d: 2D-array expected.\n"

    "%s: Argument #%d: Hypermatrix expected.\n"
    "%s: Argument #%d: %dD hypermatrix expected.\n"
    "%s: Argument #%d: %dD array expected.\n"

    "%s: Argument #%d: %d-element list expected.\n"
    "%s: Argument #%d: List of %d to %d elements expected.\n"

    "%s: Argument #%d: %s expected.\n"
    "%s: Implicit size not supported.\n"
    "%s: Hypermatrix not supported.\n"

Строковые значения

    "%s: Argument #%d: string length %s %d characters expected.\n" // '='|'>'|'>='|'<' ...etc

### Проверка значений

Неверные значения:

    "%s: Argument #%d: Must be in the interval [%s, %s].\n"
    "%s: Argument #%d: Must be in the interval [%d, %d].\n"
    "%s: Argument #%d: Must be in the interval %s.\n"
    "%s: Argument #%d: Must be < %d.\n"
    "%s: Argument #%d: Must be > %d.\n"
    "%s: Argument #%d: Must be <= %d.\n"
    "%s: Argument #%d: Must be >= %d.\n"
    "%s: Argument #%d: Inf value forbidden.\n"
    "%s: Argument #%d: Nan value forbidden.\n"
    "%s: Argument #%d: Inf and Nan values forbidden.\n"
    "%s: Argument #%d: ''%s'' expected .\n"
    "%s: Argument #%d: Must be in the set {%s}.\n"
    "%s: Argument #%d: Non-negative integers expected.\n"
    "%s: Argument #%d: Elements must be in increasing order.\n"
    "%s: Argument #%d: Elements must be in decreasing order.\n"
    "%s: Argument #%d: Elements must be in strictly increasing order.\n"
    "%s: Argument #%d: Elements must be in strictly decreasing order.\n"
    "%s: Argument #%d: An integer value expected.\n"

    "%s: Argument #%d: Unknown or unexpected property name ''%s''.\n"
    "%s: Argument #%d: Wrong type of graphic handle: ''%s'' expected.\n"
    "%s: Argument #%d: The %s handle is no longer valid.\n"  // графики, XML, lu и другие указатели
    "%s: Argument #%d: Wrong color specification.\n"

Обратите внимание, что сообщение об ошибке для интервалов является особым: любой тип интервала наподобие [#, #], (#, #], [#, #), (#, #) (-oo, #], [#, oo) и др. может без труда определён внутри того же унифицированного сообщения. Должны быть выполнены границы форматирования и замещения с помощью msprintf(..)

### Проверка связи между аргументами:

    "%s: Arguments #%d and #%d: Incompatible sizes.\n"
    "%s: Arguments #%d and #%d: Same sizes expected.\n"
    "%s: Arguments #%d and #%d: Same numbers of columns expected.\n"
    "%s: Arguments #%d and #%d: Same numbers of rows expected.\n"
    "%s: Arguments #%d and #%d: Same numbers of elements expected.\n"
    "%s: Arguments #%d and #%d: Same types expected.\n"
    "%s: Arguments #%d and #%d: Same formal variable expected.\n"  // полиномы и рациональные значения

### Файлы, папки

    "%s: Cannot open file ''%s''.\n"
    "%s: The file ''%s'' does not exist.\n"
    "%s: File ''%s'': Read access denied.\n"
    "%s: File ''%s'' already exists or directory write access denied.\n"
    "%s: Error while copying the file ''%s'' to the directory ''%s''.\n"
    "%s: The file ''%s'' cannot be written.\n"
    "%s: The file ''%s'' is not well formated at line %d\n"
    "%s: Cannot close the file ''%s''.\n"
    "%s: End of file at line %d.\n"
    "%s: Binary direct access files must be opened by ''file''.\n"
    "%s: C file logical unit not allowed here.\n"
    "%s: Fortran file logical unit not allowed here.\n"
    "%s: No input file associated to logical unit %d.\n"

### Динамические системы

    "%s: Argument #%d: Transfer matrix expected.\n"
    "%s: Argument #%d: In state space form expected.\n"
    "%s: Argument #%d: In continuous time expected.\n"
    "%s: Argument #%d: In discrete time expected.\n"
    "%s: Argument #%d: SISO expected.\n"
    "%s: Argument #%d: Undefined time domain.\n"
    "%s: Argument #%d: Invalid state space representation.\n"
    "%s: Argument #%d: A system in state space or transfer matrix form expected.\n"

### Разное

    "%s: No more memory.\n"
    "%s: No more memory: %d requested, %d available.\n"
    "%s: Non implemented feature.\n"
    "%s: Inconsistent addition.\n"
    "%s: Inconsistent multiplication.\n"
    "%s: The problem is singular.\n"
    "%s: Division by 0...\n"
    "%s: Invalid index.\n"
    "%s: ''%s'' expected instead of ''%s''.\n"
    "%s: Recursion limit reached.\n"
    "%s: Recursion problems. Sorry...\n"
    "%s: Convergence problem...\n"

    "%s: Incorrect syntax.\n"
    "%s: Incorrect assignment.\n"
    "%s: Subroutine ''%s'' not found.\n"
    "%s: Bad call to primitive ''%s''.\n"
    "%s: Dot cannot be used as modifier for this operator.\n"
    "%s: Problem with comparison symbol...\n"
    "%s: Missing operator, comma, or semicolon.\n"

## Примеры

    lang0 = getlanguage();
    setlanguage fr;

    msg = _("%s: Wrong number of input arguments: %d or %d expected.\n")
    error(msprintf(msg, "myfun", 2, 3))

    msg = _("%s: Argument #%d: Must be in the set {%s}.\n")
    error(msprintf(msg, "myfun", 2, "''r'' ''c''"))

    msg = _("%s: Non implemented feature.\n")
    error(msprintf(msg, "myfun"))

    setlanguage(lang0);

    msg = _("%s: Argument #%d: Encoded integer of type (%s) expected.\n")
    error(msprintf(msg, "myfun", 1, "uint16"))

    msg = _("%s: Argument #%d: The %s handle is no longer valid.\n")
    error(msprintf(msg, "myfun", 3, _("graphic")))

    --> msg = _("%s: Wrong number of input arguments: %d or %d expected.\n")
     msg  =
     %s : Nombre erroné d'arguments d'entrée : %d ou %d attendus.\n

    --> error(msprintf(msg, "myfun", 2, 3))
    myfun : Nombre erroné d'arguments d'entrée : 2 ou 3 attendus.

    --> msg = _("%s: Argument #%d: Must be in the set {%s}.\n")
     msg  =
     %s : Argument #%d : doit être dans l'ensemble {%s}.\n

    --> error(msprintf(msg, "myfun", 2, """r"" ""c"""))
    myfun : Argument #2 : doit être dans l'ensemble {"r" "c"}.

    --> msg = _("%s: Non implemented feature.\n")
     msg  =
     %s : Fonction non implémentée\n

    --> error(msprintf(msg, "myfun"))
    myfun : Fonction non implémentée

    --> setlanguage(lang0);

    --> msg = _("%s: Argument #%d: Encoded integer of type (%s) expected.\n");
    --> error(msprintf(msg, "myfun", 1, "uint16"))

    myfun: Argument #1: Encoded integer of type (uint16) expected.

    --> msg = _("%s: Argument #%d: The %s handle is no longer valid.\n");
    --> error(msprintf(msg, "myfun", 3, _("graphic")))

    myfun: Argument #3: The graphic handle is no longer valid.

## See also

- error
- gettext
- msprintf
- printf_conversion
- warning
- lasterror

## История

6.0.0 Нельзя больше использовать номера ошибок. Теперь есть необязателные (по умолчанию = 10000) и локальные (устанавилвается при каждом вызове error()).