• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по Delphi 7 для начинающих

Предотвращение и обработка ошибок

Следующая программа, вид диалогового окна которой приведен на рис. 13.3, а текст – в листинге 13.1, демонстрирует обработку исключений при помощи инструкции try.

Иллюстрированный самоучитель по Delphi 7 для начинающих › Отладка программы › Предотвращение и обработка ошибок
Рис. 13.3. Диалоговое окно программы

Листинг 13.1. Обработка исключения типа EZeroDivide.

unit UsTry_;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, StdCTRLs;
type
TForm1 = class (TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Editl: TEdit; // напряжение
Edit2: TEdit; // сопротивление
Label5: TLabel; // результат расчета – ток
Button1: TButton; //кнопка Вычислить
procedure ButtonlClick(Sender: TObject);
private
{ Private declarations)
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
u: real; // напряжение
r: real; // сопротивление
i: real; // ток
begin
Labels.Caption: = ' '; try
// инструкции, которые могут вызвать исключение (ошибку)
u: = StrToFloat(Edit1.Text);
r: = StrToFloat(Edit2.Text);
i: = u/r;
except // секция обработки исключений
onEZeroDivide do // деление на ноль
begin
ShowMessage('Сопротивление не может быть равно нулю!');
exit;
end;
on EConvertError do // ошибка преобразования строки в число
begin
ShowMessage('Напряжение и сопротивление должны быть ' +
'заданы числом. ' +#13+
'При записи дробного числа используйте запятую.';
exit;
end;
end;
Label5.Caption: = FloatToStr(i) + ' A';
end;
end.

В приведенной программе исключения могут возникнуть при вычислении величины тока. Если пользователь задаст, что сопротивление равно нулю, то при выполнении инструкции i: = u/r возникает исключение EZeroDivide.

Если неверно будет введено числовое значение, например, для разделения целой и дробной частей числа вместо запятой будет использована точка, то возникнет исключение типа EConvertError. Оба исключения обрабатываются одинаково: выводится сообщение, после чего процедура обработки события Onclick завершает свою работу.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.