Обработка ошибок

При обнаружении ошибки поток вызывает свой метод TStream.Error, который определяет необходимую реакцию программы. По умолчанию этот метод просто записывает информацию об ошибке в поля TStream.Status и TStream.ErrorInfo.

Поле Status определяет тип ошибки, в соответствии со следующими константами модуля Objects:

const

stOk = 0; {Нет ошибки}

stError =-1; {Ошибка доступа}

stInitError =-2; {Ошибка инициации потока}

stReadError =-3; {Чтение за концом потока}

stWriteError =-4; {Нельзя расширить поток}

stGetError =-5; (Get для незарегистрированного объекта}

stPutError =-6; {Put для незарегистрированного объекта}

Поле ErrorInfo определено только для Status - -5 или Status - -6: в первом случае оно содержит регистрационный номер, полученный из потока и не обнаруженный в регистрационном списке; во втором - смещение ТВМ незарегистрированного объекта, который программа пытается поместить в поток.

Сразу после обнаружения ошибки Turbo Vision блокирует все операции с потоком до тех пор, пока аварийная ситуация не будет сброшена обращением к методу TStream.Reset.