Помощь - Поиск - Пользователи - Календарь
Полная версия: Игнор Ошибок
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
SkyBoy
как сделать так, чтобы игнорировались ошибки и дос не вылетал??
вот например, если a:integer; то при попытке readln (a) он сразу вылетит нафиг. Как сигнорировать эту ошибку и возвратится к чтению переменной?
Bokul
Вот так, например:

var a:integer;
begin
writeln('Enter an integer value');
repeat
{$I-}
readln(a);
{$I+}
until IOResult=0;
writeln('Thank you');
readln;
end.

klem4
еще как вариант всегда изначально считывать строку, и уже потом, переводя ее в число с помощью val смотреть код ошибки, если он не нулевой, запрашивать повторный ввод.
volvo
Цитата
Вот так, например:
ты можешь получить совсем не то, что хотел... Запусти свою программу, и попробуй ввести 123456 (под TP, разумеется...) И посмотри, что было занесено в переменную A...

Так что, самый надежный вариант -
Цитата
изначально считывать строку
(на форуме был пример реализации "защиты от дурака" подобным образом, так что Поиск)
SkyBoy
хорошо, объясните мне, пожалуйста, что такое {$I-} и {$I+} !
volvo
Читать здесь: FAQ -> Директивы компилятора
SkyBoy
спасибо good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.