Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 419; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.009 с.) |