Так называемое исключение относится к временной ошибке, вызванной проблемами в самой программе или неправильной работой пользователя во время работы программы.
Остановить выполнение программы и получить ошибочные результаты. Любой, кто писал программы на Delphi, наверняка знаком с исключениями. источник исключения
Существует множество аспектов. Ссылка на нулевой указатель, присвоение за пределами, деление на ноль и т. д. могут вызвать исключение. Если соответствующие меры не приняты в случае аномальных событий,
Неправильное обращение может привести к сбою всей программы. К счастью, Delphi может автоматически обрабатывать почти все возможные исключения.
иметь дело с.
1. Простой пример автоматической обработки исключений в Delphi.
1. В интегрированной среде Delphi (3.0) выберите меню «Инструменты | Параметры среды» и в появившемся окне «Среда»
На странице «Preferences» в окне «Параметры» (в левом нижнем углу) есть опция «Разрыв при исключении». Эта опция по умолчанию
Статус выбран таким образом, что в случае возникновения исключения при запуске программы в интегрированной среде Delphi работа программы автоматически прервется и вернется
В состоянии отладки Delphi курсор остается на коде, в котором возникает исключение, чтобы программисты могли его изменить. Теперь нажмите на эту опцию, чтобы сделать ее недоступной.
Проверьте это и ОК.
2. Создайте новый проект и сохраните его как Excep.dpr (он пригодится позже), а соответствующий модуль сохраните как Excpunit.pas в Form1;
Поместите в него компонент TmaskEdit, установите для его свойства EditMask значение Date, затем поместите компонент Tbutton, дважды щелкните его,
Напишите его событие OnClick следующим образом:
процедура TForm1.BitBtn1Click(Отправитель: TObject);
вар к: целое число;
начинать
к:=0;
k:=9 div k;{Здесь будет сгенерировано исключение деления на 0}
конец;
3. Сохраните и запустите программу. Просто напишите одно или два числа в MaskEdit1 и нажмите Enter. Это сгенерирует (также называемое пробуждением).
Исключение вызывает следующее окно:
Это исключение из-за неполных данных, введенных в поле MaskEdit. Delphi автоматически обрабатывает щелчок.
После «ОК» программа продолжает выполнение. Нажмите кнопку Button1, появится еще одно похожее окно, потому что там есть
Исключение деления на ноль.
2. Подсказки Delphi для нештатных ситуаций написаны на английском языке, который не используется китайцами. Мы можем перехватить эти исключения и реализовать их с помощью.
Китайские советы. Конкретные шаги заключаются в следующем:
1. Измените событие OnClick кнопки Button1 следующим образом:
процедура TForm1.BitBtn1Click(Отправитель: TObject);
вар к: целое число;
начинать
к:=0;
пытаться
к:=9 дел к;
кроме
showmessage('Делитель не может быть равен нулю');
конец;
конец;
2. Сохраните и запустите программу. Окно подсказки, появившееся после нажатия кнопки «1», сменится сообщением на китайском языке «Делитель не может быть равен нулю». использовать
Оператор try...Exception...end — это распространенный метод обработки исключений. Оператор после зарезервированного слова try выполняется, если.
Если возникает исключение, будет выполнен оператор между зарезервированными словами кроме и end. В противном случае будет выполнен оператор, следующий за end, заменяя таким образом оператор Delphi.
Обработка исключений по умолчанию. Еще одно похожее утверждение — try…finally…end, которое то же самое, что try…кроме…
....Разница с end заключается в том, что независимо от того, вызовет ли оператор после try исключение, оператор после, наконец, обязательно будет выполнен.
Однако для исключений, подобных тем, которые генерируются блоком TmaskEdit, использование оператора try бессильно, поскольку мы не можем найти
Место для написания операторов try. Мы можем решить ее только по-другому.
3. В каждом проекте Delphi есть объект Tapplication, который является невидимым объектом. мы можем
Изменяя событие OnException, вы можете управлять особыми исключениями. Конкретные методы следующие:
1. Объявите процесс MyException в классе Form1. Этот процесс связан с событием OnException Tapplication.
Те же параметры:
общественный
{Публичные заявления}
процедура MyException(Отправитель:TObject;E:Exception);
2. Напишите код процесса:
процедура TForm1.MyException(Sender:TObject;E:Exception);
начинать
если E — это EDBEditError, то showmessage («Ввод не соответствует правилам»)
еще
Application.ShowException(E); {Вызов обработки исключений по умолчанию}
конец;
3. Присвойте значение событию OnException Tapplication в событии OnCreate формы Form1:
процедура TForm1.FormCreate(Отправитель: TObject);
начинать
Application.OnException :=MyException;
конец;
4. Сохраните и запустите программу, введите одно или два числа в поле MaskEdit, нажмите Enter, и появится окно подсказки на китайском языке.
Замените оригинальную английскую подсказку.
4. Здесь хотелось бы напомнить всем обратить внимание на три момента:
1.Delphi объединяет все исключения в один класс, то есть класс исключений (Exception).
Особый случай: sysutils.pas в каталоге c:program files илиlandDelphi 3source tlsys.
Существует определение класса Exception.
2. Объект Tapplication предоставляет процесс HandleException для обработки необработанных ошибок, возникающих в программе.
События исключений: когда мы присваиваем значение событию OnException Tapplication, HandleException вызывает новый
Процедура замены дисплея сообщения об ошибке по умолчанию. Мы можем организовать отображаемый контент по своему усмотрению для достижения Хань.
эффект трансформации.
3. Мы используем оператор оценки IF для получения указанного исключения. Мы можем использовать простой метод, чтобы получить имя указанного исключения.
Возвращаясь к примеру в начале статьи, здесь мы выбираем опцию Разрыв при исключении, снова запускаем программу и вводим
Неправильные числа приводят к тому, что MaskEdit1 генерирует исключение, и появляется следующее окно:
EDBEditError во второй строке окна — это имя исключения. Код в программе в этой статье:
если E — это EDBEditError, то showmessage («Вводные данные не соответствуют требованиям»)
Оно было написано на основе этого имени. Здесь вы можете получить информацию, если не знаете точное имя исключения. Используя это
Будьте осторожны при обработке событий исключений, поскольку вы заменили обработку исключений Delphi по умолчанию.
Это может привести к сбою системы.
Вышеупомянутая программа успешно работает под Windows 95 Delphi 3.0.