Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Локальная обработка исключений.

Читайте также:
  1. A) Локальная сеть (LAN).
  2. IV. Обработка исключений
  3. VII. Обработка звука. Редактор звука Adobe Audition.
  4. Влажно-тепловая обработка изделий.
  5. Вторичная термообработка автомобильных деталей
  6. Выбрасывание исключений. Создание объектов Exception
  7. Выполнение результатов и обработка результатов
  8. Дискретное представление информации: кодирование цветного изображения в компьютере (растровый подход). Представление и обработка звука и видеоизображения.
  9. Занятие 2. Тема 4.2 Возможности динамических (электронных) таблиц. Математическая обработка числовых данных. Системы статистического учета.
  10. ИЗУЧЕНИЕ ОТОБРАННОЙ РЕКОМЕНДОВАННОЙ ЛИТЕРАТУРЫ, СБОР И АНАЛИТИЧЕСКАЯ ОБРАБОТКА ФАКТИЧЕСКОГО МАТЕРИАЛА

Для обеспечения возможности использования локальных (специализированных) обработчиков исключений в состав языка введены две конструкции try.. finally и try.. except. Обе конструкции имеют похожий синтаксис, но различное назначение. Блоки try включают операторы программы, которые могут вызвать исключительную ситуацию.

Конструкция try.. finally состоит из двух секций и имеет следующий формат:

Try

// Операторы, выполнение которых может вызвать ошибку

finally

// Операторы, которые должны быть выполнены даже в случае ошибки

end;

Формат конструкции try.. except следующий:

Try

// Операторы, выполнение которых может вызвать ошибку

except

// Операторы, которые должны быть выполнены в случае ошибки

end;

В каждой из этих конструкций выполняются операторы секции try, если в результате возникает исключительная ситуация, то управление передается первому оператору секции finally или секции except. Если исключительная ситуация не возникла, то в случае конструкции try.. finally последовательно выполняются все операторы обеих секций, в случае использования конструкции try.. except операторы секции except не выполняются.

procedure TForm1.Button1Click(Sender: TObject);

begin

try

edit1.Text:=FloatToStr(2*StrToFloat(Edit1.Text));

except

If MessageDLg('Содержимое поля Edit1 равно '+Edit1.Text+#10#13+'Это не число!',mtError,[mbOk],0)=mrOk Then

begin

Edit1.text:='';

Edit1.SetFocus;

end;

end;

end;

Секция except может быть разбита на несколько частей конструкциями on.. do, позволяющими анализировать класс исключительной ситуации с целью ее обработки. Конструкция on.. do применяется в случаях, когда действия зависят от класса исключения:

On <Идентификатор: класс исключения> do

<оператор обработки исключения этого класса>;

else

<оператор>;

procedure TForm1.Button1Click(Sender: TObject);

begin

try

label1.Caption:=FloatToStr(StrToFloat(Edit1.Text)/FloatToStr);

except

On EConvertError do

If MessageDLg('Содержимое поля Edit1 равно '+Edit1.Text+#10#13+'Это не число!',mtError,[mbOk],0)=mrOk Then

begin

Edit1.text:='';

Edit2.Text:='';

Edit1.SetFocus;

end;

On EZeroDivide do

If MessageDLg('Делить на ноль нельзя',mtError,[mbOk],0)=mrOk Then

begin

Edit2.text:='';

Edit2.SetFocus;

end;

end;

end;

Замечание. Указанные процедуры работают только при запуске откомпилированной программы, при запуске из Delphi действует глобальный обработчик среды.

Конструкции try могут быть вложенными и размещаться одна в другой.

При необходимости исключительную ситуацию можно вызвать программно.

 




Дата добавления: 2015-01-29; просмотров: 34 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав