Инструменты пользователя

Инструменты сайта


msx:basic_dialogue_programming_language:205

Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

2.5. Сообщения об ошибках в системе MSX BASIC

FIXME


Дать подходящее сообщение об ошибке —
верх справедливости.

Старая пословица


Получив сообщение об ошибке,
сохраняйте спокойствие.

Маленькая хитрость

Код Сообщение Описание
1NEXT without FOR
(NEXT без FOR).
Встречен оператор NEXT, но отсутствует переменная, определенная посредством оператора FOR. Переменная в операторе NEXT не соответствует никакой ранее выполненной и не имеющей пары переменной оператора FOR. Либо в программе слишком много NEXT, либо ошибка в переменной, следующей за NEXT.
2Syntax error
(Синтаксическая ошибка).
Строка содержит неправильную последовательность символов (например, непарные скобки, неправильно написанная команда или оператор, неверная пунктуация и т.д.).
Причиной ошибки является либо незнание синтаксиса, либо простая описка!
3RETURN without GOSUB
(RETURN без GOSUB).
Встречен оператор RETURN, для которого нет предыдущего, не связанного в другой паре,оператора GOSUB. Это,например,происходит когда конец основной программы и начало подпрограммы не разделены посредством END.
4OUT of DATA
(Исчерпаны данные DATA).
При выполнении оператора READ в операторе DATA не хватает данных.
В программе отсутствует RESTORE или условие прекращения действия оператора READ.
5Illegal function call
(Неправильный вызов функции).
Это сообщение появляется обычно в том случае, если аргумент функции выходит за установленные пределы.
Данная ошибка может произойти в следующих случаях:
  1. отрицательный или слишком большой индекс;
  2. отрицательный или нулевой аргумент в функциях LOG и SQR;
  3. обращение к функции USR, для которой не задан начальный адрес;
  4. использование операторов ERASE, SWAP, VARPTR с неопределенной (неиспользуемой) переменной;
  5. неправильный аргумент в операторах MID$, RIGHT$, LEFT$, INP, OUT, WAIT, PEEK, POKE, TAB, SPC, STRING$, SPACE$, INSTR, ON…GOTO(GOSUB);
  6. в операторах GET или PUT записано отрицательное число;
  7. в режимах SCREEN0 или SCREEN1 использованы графические команды/операторы;
  8. неправильные переменные в GML (графический макроязык) или в MML(макроязык музыки);
  9. использование SPRITE$ в режиме SCREEN 0.
6Overflow
(Переполнение).
Результат вычисления превосходит формат представления числа в BASIC. Если появляется UNDERFLOW (потеря всех значащих цифр), то результат принимается равным нулю и выполнение программы продолжается без сообщения об ошибке.
7Оut of memory
(Выход за пределы памяти).
Программа слишком велика или содержит слишком много переменных (слишком большие массивы), слишком много циклов FOR…NEXT, переходов GOSUB (для которых требуются метки переходов в стеке). Иногда этого можно избежать, записывая массивы в файлы на дискете, исправляя распределение памяти соответствующими операторами CLEAR или записывая подпрограммы в двоичные файлы. В некоторых случаях можно хранить данные в неиспользуемых областях видеопамяти (VRAM).
8Undefined line number
(Не определен номер строки).
Обращение к несуществующей строке в операторах GOTO, GOSUB, IF…THEN…ELSE или DELETE. Новая строка, которая содержит только номер строки, также вызывает это сообщение.
Обратите внимание, что команда RENUM обнаруживает недостающие переходы!
9Subscript out of range
(Выход за пределы массива).
Обращение к элементу массива с индексом, превышающим размерность массива или с недопустимым количеством индексов.
10Redimensioned array
(Повторное задание размерности массива).
Один и тот же массив упоминается в двух операторах DIM или используется оператор DIM для массива, который ранее был определен по умолчанию.
Для изменения размерности массива его нужно предварительно уничтожить с помощью оператора ERASE.
11Division by zero
(Деление на нуль).
В выражении встречается деление на нуль, или возведение нуля в отрицательную степень (нуль в нулевой степени принимается равным 1). Помните, что значение будет приравнено нулю, если оно меньше минимального числа, представимого в компьютере MSX («машинного нуля»).
12Illegal direct
(Неправильная команда в режиме непосредственного выполнения).
В качестве команды режима непосредственного выполнения встречается оператор, недопустимый в этом режиме (например, DEFFN).
13Type mismatch
(Несоответствие типа).
Присвоение строковой переменной числового значения или наоборот;
аргументу функции, которому должно быть присвоено числовое значение, присваивается строковое значение и наоборот.
14Out of string space
(Исчерпано место для строковых переменных).
Пространство в памяти,отведенное под строковые переменные по умолчанию (200 байтов) или посредством CLEAR, исчерпано. Следует перезадать размеры пространства, использовать файлы (дискету) или записать строки в неиспользуемые области видеопамяти (VRAM).
15String too long
(Слишком длинная строка).
Попытка создания строки длиной более 255 символов. Такая строка должна быть разделена на меньшие части.
16String formula too complex
(Строковое выражение слишком сложно).
Слишком длинное или слишком сложное строковое выражение. Его следует разбить на более короткие выражения.
17Can't continue
(Продолжение невозможно).
Сделана попытка продолжения программы, которая:
  1. прервана из–за ошибки, а не по нажатию клавиши STOP или CTRL+STOP;
  2. модифицирована после останова выполнения программы (Break);
  3. не существует.
18Undefined user function
(Неопределенная функция пользователя).
Вызов функции USR до того, как задано ее определение.
19Device I/O error
(Ошибка устройства ввода/вывода).
Произошла ошибка во время операции ввода–вывода.Это может произойти, например, когда CTRL+STOP прерывает операцию чтения с кассетной ленты.
20Verify error
(Ошибка верификации).
Содержимое памяти или файла при проверке оказывается другим. Эта ошибка может появиться при использовании команды CLOAD.
21No RESUME
(Отсутствует оператор RESUME).
В программе обработки ошибок нет оператора RESUME.
22RESUME without ERROR
(Оператор RESUME при отсутствии ошибки).
Оператор RESUME встречается прежде,чем запускается программа обработки ошибок.
23Unprintable error
(Ошибка без вывода текста сообщения).
Насколько известно, такая ошибка может быть вызвана только в результате действия оператора ERROR (имитация ошибки).
24Missing operand
(Пропущенный операнд).
Выражение содержит оператор без последующих операндов; в команде/операторе отсутствуют обязательные параметры.
25Line buffer overflow
(Переполнение буфера строки).
Попытка ввести с помощью оператора INPUT строку, содержащую более 255 символов (из файла).
26–49Unprintable error(См. 23).
50Field overflow
(Переполнение поля).
Попытка размещения оператором FIELD количества байтов,превышающеето, которое определено для записи в файл произвольного доступа.
51Internal error
(Внутренняя ошибка).
Неисправность. Произведите «сброс» нажатием клавиши RESET, либо выключением компьютера.
52Bad file number
(Неправильный номер файла).
Оператор или команда обращается к файлу с номером, для которого не был выполнен оператор OPEN, или этот номер превышает число, заданное в операторе MAXFILES.
53File not found
(Файл не найден).
Оператор/команда LOAD, KILL, NAME или OPEN обращается к файлу, не существующему на данной дискете.
54File already open
(Файл уже открыт).
Оператор режима последовательного вывода OPEN задан для файла, который уже открыт таким оператором; либо оператор KILL относится к открытому файлу.
55Input past end
(Ввод после конца файла).
Оператор INPUT пытается прочитать больше данных, чем есть в файле.
Во избежание этой ошибки используйте функцию EOF для обнаружения конца файла.
56Bad file name
(Неправильное имя файла).
В операторах LOAD, SAVE, KILL или OPEN использовано неверное имя файла (например, имя файла, в котором слишком много символов).
57Direct statement in file
(Оператор прямого режима в файле недопустим).
Оператор прямого режима встречен при загрузке файла в формате ASCII оператором LOAD. Действие LOAD прекращается. Выдается также при попытке загрузить командой типа LOAD двоичный файл.
58Sequential I/O only
(Только последовательный ввод–вывод).
Использование операторов GET или PUT для файла,который был открыт посредством оператора OPEN как последовательный файл.
59File not OPEN
(Файл не открыт с помощью команды).
Команда (оператор) ввода/вывода используется для файла, который не был открыт оператором OPEN.
60Bad FAT
(Неверная информация в FAT(таблице распределения файлов)).
Файловая таблица распределений FAT не в порядке. Вероятно, дискета не была инициализирована с помощью команды FORMAT.
61Bad file mode
(Неверный режим обращения к файлу).
Сделана попытка использовать операторы PUT, GET или LOF по отношению к файлу последовательного доступа, загрузить командой LOAD файл произвольного доступа, или выполнить оператор OPEN в неподходящем файловом режиме.
62Bad drive name
(Неправильное имя дисковода).
Использовано неправильное имя дисковода.
63Bad sector number
(Неправильный номер сектора).
В последней версии дискового MSX BASIC этой ошибки не должно быть!
64File still open
(Файл все еще открыт).
Файл не был закрыт оператором CLOSE.
65File already exists
(Файл уже существует).
Имя файла, определенное в операторе NAME, является идентичным имени файла, уже имеющегося на дискете.
66Disk full
(Дискета заполнена до предела).
RAM disk full
(Виртуальный диск ОЗУ уже заполнен).
67Too many files
(Слишком много файлов).
Попытка создания нового файла(использование команд SAVE или OPEN), когда все 255 элементов каталога заполнены.
68Disk write protected
(Дискета защищена от попыток записи).
Дискета защищена от попыток записи.
69Disk I/O error
(Ошибка при вводе/выводе на дискету).
Неисправляемая ошибка, возникающая при выполнении операторов ввода–вывода на дискету.
70Disk offline
(Дисковод в автономном режиме или выключен).
RAM disk offLine
(Отключен виртуальный диск; ошибка для компьютера серии MSX-2).
71Rename across disks
(Ошибка переименования файла).
Сделана попытка переименования файла с новым идентификатором дисковода. Это не допускается!
72–255Unprintable error
(Ошибка без вывода текста сообщения).
См. 23.

Внимание!

  1. Сообщения об ошибках с кодами 60÷71 приведены для версии MSX Disk BASIC. Для версии MSX BASIC этим кодам соответствует сообщение об ошибке с номером 23:

    «Unprintable error».

  2. На компьютерах MSX-2 имеется ошибка без соответствующего номера, сигнализирующая о невозможности подключения диска ОЗУ:

    «No RAM disk».


Первая страницаПредыдущая страницаНазад к обзоруСледующая страницаПоследняя страница

msx/basic_dialogue_programming_language/205.txt · Последние изменения: 2023-02-19 16:28 — GreyWolf