Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Искусственная генерация исключений
Для отладки обработки исключений используется оператор: Raise [<тип исключения>[. <имя конструктора>(<параметры>)]]; Если исключение не указано, то повторно генерируется ранее обработанное исключение по схеме: Try <операторы внешнего блока> Try <операторы внутреннего блока> Except //исключения внутреннего блока On <тип исключения> Do //начало обработки исключения Begin <обработка исключения внутреннего блока> Raise; //повторная генерация исключения End; //окончание обработки исключения End; //окончание обработки всех исключений внутреннего блока <операторы внешнего блока> Except //исключения внешнего блока и повторно сгенерированное On <тип исключения> Do <обработка исключений обоих блоков> End; //окончание обработки всех исключений внешнего блока
Пример проверки вводимого значения для делителя: If (Edit1.Text=’’) Then Raise EZeroDivide.Create(‘Пустое значение’); Если в поле Edit1 будет пустое значение, то сгенерируется исключение EzeroDivide и появится окно с текстом ‘Пустое значение’.
Исключения EAbort и функция Abort Если исключение EAbort не обрабатывается, то оно выполняется без всякого сообщения (молчаливое прерывание). Функция Abort искусственно генерирует это исключение, которое прерывает работу текущей подпрограммы и все вызвавшие ее подпрограммы, возвращая управление на самый верх, т.е. происходит возврат из глубоко вложенных подпрограмм. Пример: If B=0 Then Abort; При необходимости это исключение можно обработать, указав в разделе Except блока Try...Except оператор On EAbort Do.... Создание нового типа исключения Новый тип исключения создается в разделе типов модуля в виде: Type <имя нового типа исключения>=Class(Exception) [<свойства> End]; Пример контроля за присутствием информации в поле ввода Edit1: Type EPusto=Class(Exception); //создание собственного типа исключения ... If Edit1.text='' Then Raise EPusto.Create('Пустое поле');//генерация искл. Else A:= Edit1.text; //использование значения поля ввода Edit1. Пример создания нового исключения ETError со свойством NError: Type ETError=Class(Exception) Public NError: Integer; End;//создание искл. Var EError: ETError;... //объявление переменной типа ETError Try... If Err>0 Then //условие наличия ошибки. Err ‑ номер ошибки Begin EError:=ETError.Create(‘Ошибка!’);//текст сообщения EError.NError:=Err; //запоминание ошибки в свойстве
Raise EError; //генерация исключения и переход в Except End;... Except // раздел обработки исключений On ETError Do //обработка созданного исключения ETError Case EError.Nerror Of //варианты обработки ошибки 1:... //обработка ошибки под номером 1 2:... //обработка ошибки под номером 2 ... End //окончание вариантов обработки ошибок End; //окончание раздела обработки исключений Вопросы для самопроверки и контроля Вопросы для самопроверки 1. Каково назначение оператора Try? Контрольные вопросы 1. Каково назначение раздела Finally в операторе Try? Основные стандартные функции и процедуры Для сокращения описания процедур и функций используются имена: S,S1,S2 ‑ строковые параметры, F - файловые переменные и H ‑ дескрипторы файлов, N ‑ целочисленные переменные. Математические функции Abs(R: real): real ‑ возвращает абсолютное значение аргумента. ArcTan(R: real): real ‑ возвращает арктангенс аргумента. Cos/Sin(R: real): real ‑ возвращает косинус/синус аргумента. Exp(R: real): real ‑ возвращает экспоненту аргумента. Frac/Int(R: real): real ‑ возвращает дробную/целую часть аргумента. Ln(R: rеal): rеal ‑ возвращает натуральный логарифм аргумента. Pi: real ‑ возвращает значение числа Pi=3.1415926535897932385. Randomize ‑ инициализирует генератор случайных чисел. Random[(R: word)] ‑ возвращает случайное число от 0 до R (1). Предварительно нужно выполнить функцию Randomize. Round(R: real): longint ‑ округляет значение R до ближайшего целого. Sqr(R: real): real ‑ возвращает аргумент в квадрате. Sqrt(R: real): real ‑ возвращает квадратный корень аргумента. Odd(X): Boolean ‑ проверяет, является ли аргумент нечетным числом. Trunc(B: real): longint ‑ усекает значение до целого путем отбрасывания дробной части. Форматирование Строка форматирования Строка форматирования определяет порядок редактирования значений аргументов при формировании форматированной строки. Она содержит обычные символы, которые переносятся в форматированную строку и спецификаторы (шаблоны) формата редактирования аргументов, который имеет вид: %[<индекс>:][‑][<ширина поля>[.<N‑точность>]<тип>] [ ‑ ] ‑ выравнивание результата влево в поле вывода.
<индекс> ‑ задает порядковый номер редактируемого аргумента (отсчет с нуля). Это позволяет пропускать отдельные аргументы или повторять редактирование. <ширина поля> ‑ задает минимальное число символов результата. При меньшей длине происходит добавление пробелов слева или справа. <тип> - определяет формат редактирования аргумента: d ‑ десятичное целое длиной не менее N знаков; e ‑ научный формат: [‑]d.dddE+ddd или [‑]d.dddE‑ddd. (N= 15); f ‑ вещественное число вида [‑]ddd.ddd..... (N= 2); g ‑ обобщенный формат e или f с наименьшим размером записи; n ‑ аналогичен f, но дополнительно выводятся разделители‑запятые тысяч; m ‑ формат записи денежных сумм; p ‑ указатели в виде <номер сегмента>: <смещение>; s ‑ формат строки для аргументов типа символ или строка. N – максимальное число вставляемых символов; x ‑ шестнадцатеричное целое длиной не менее N знаков.
|
||||||
Последнее изменение этой страницы: 2017-02-08; просмотров: 321; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.193.181 (0.011 с.) |