D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / FlashBASIC / Регистрация ошибок

Регистрация ошибок

Во время компиляции исходных программ Pick/BASIC с помощью компилятора FlashBASIC с опцией "o" компилятор автоматически регистрирует все ошибки компиляции, если в файле программы Pick/BASIC имеется секция данных под именем "$log". Журнал обновляется только при обнаружении ошибки. Идентификатор каждой записи в журнальном файле равен идентификатору компилируемой записи.

Первый атрибут журнальной записи содержит время и дату ошибки, а также "фазу" компиляции, на которой эта ошибка произошла. Другие атрибуты могут содержать прочую дополнительную информацию, содержание которой не определено. Например, там могут находиться сообщения об ошибках операционной системы Unix.

Ошибки, регистрируемые как ошибки "фазы 0", - это проблемы, обнаруживаемые стандартным компилятором Pick/BASIC.

Ошибки "фазы 1" и выше - это ошибки компиляции компилятором FlashBASIC.

Ошибки, имеющие место на более высоких уровнях, могут означать проблему установки системы или отсутствие каких-либо ресурсов - например, памяти для свопинга. В таких случаях атрибуты 2 и далее содержат более подробную информацию об ошибках.

"Условие неисправимой ошибки" ("fatal error condition") - это тип ошибки, который возникает, если программа FlashBASIC сталкивается с неразрешимой ситуацией, вызывающей выход в отладчик FlashBASIC. Условие неисправимой ошибки возникает, например, в случае, если происходит обращение к индексу массива-матрицы меньше "1" или больше числа, заданного в операторе "dim".

Ошибка, которая возникает в случае, если программа FlashBASIC сталкивается с условием, которое исполняемый пакет (runtime) FlashBASIC способен устранить, хотя и не для удовлетворения конкретного требования программы.

Чаще всего в таких случаях выдается сообщение "variable has not been assigned a value" ("переменной не присвоено значение"). Это происходит из-за того, что обращение к переменной справа от знака равенства ("=") происходит до обращения (присваивания значения) слева от знака равенства.

Примеры:

Регистрацию ошибок для файла "bp" можно задать следующим образом:

create-file bp,$log 7

С этого момента все глаголы "compile", использующие опцию "o", будут регистрировать ошибки в файле "bp,$log". Для просмотра журнальных записей можно ввести следующие команды:

ct bp,$log
или
list-item bp,$log
или
sort-item bp,$log
dim array(10)
for i = 1 to 10
array(i) = x
next i
В результате выдается 10 сообщений о преодолимых ошибках.
[B10] in program "name", Line n:
      Variable has not been assigned a value; zero used.

(Программа "name", строка "n": переменной не присвоено значение; использован ноль)