W Cat - Описание языка PascalABC.NET

Тут можно читать онлайн W Cat - Описание языка PascalABC.NET - бесплатно полную версию книги (целиком) без сокращений. Жанр: Детская образовательная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

W Cat - Описание языка PascalABC.NET краткое содержание

Описание языка PascalABC.NET - описание и краткое содержание, автор W Cat, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru


PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.


PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.


PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.

Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)

Описание языка PascalABC.NET - читать книгу онлайн бесплатно, автор W Cat
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

...

procedureReadFile(fname: string);

begin

if notFileExists(fname) then

raise newFileNotFoundException('Файл не найден',fname);

end;

...

try

...

except

one: FileNotFoundException do

writeln('Файл '+e.fname+' не найден');

end;

Повторная генерация исключения

Для повторной генерации исключения в блоке exceptслужит оператор raiseбез параметров:

raise;

Например:

try

...

except

onFileNotFoundException do

begin

log.WriteLine('Файл не найден'); // запись в файл ошибок

raise;

end;

end;

Примеры обработки исключений

Пример 1.Обработка неверного ввода данных.

Рассмотрим программу.

vari: integer;

begin

readln(i);

writeln(i);

writeln('Выполнение программы продолжается');

end.

Если при вводе данных произойдет ошибка (например, мы введем не число), то программа завершится с ошибкой (ошибка ввода), и последующие операторы writeln не будут выполнены.

Перехватим исключение в блоке try:

vari: integer;

begin

try

readln(i);

writeln(i);

except

writeln('Ошибка ввода');

end;

writeln('Выполнение программы продолжается');

end.

На этот раз при возникновении ошибки ввода программа не будет завершена, а выполнение будет передано в блок except, после чего выполнение программы продолжится дальше. Таким образом, в последней программе не выполнится лишь оператор writeln(i).

Если в блоке tryмогут возникнуть различные исключения, то обычно используется вторая форма блока exceptс несколькими обработчиками исключений.

Пример 2.Обработка различных исключений.

vara,b: integer;

assign(f,'a.txt');

try

readln(a,b);

reset(f);

c:=a divb;

except

onSystem.DivideByZeroException do

writeln('Целочисленное деление на 0');

onSystem.IO.IOException do

writeln('Файл отсутствует');

end;

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

Пример 3.Вложенные операторы try... exceptи try... finally.

assign(f,'a.txt');

try

reset(f);

try

try

c:=a divb;

except

onSystem.DivideByZeroException do

writeln('Целочисленное деление на 0');

end;

finally

close(f);

end;

except

onSystem.IO.IOException do

writeln('Файл отсутствует');

end;

Обратим внимание, что в данном примере исключение, связанное c целочисленным делением на 0, обрабатывается в самом внутреннем блоке try, а исключение, связанное с отсутствующим файлом - в самом внешнем. При этом, если файл был открыт, то независимо от возникновения исключения деления на 0 он будет закрыт.

Интерфейсы

Интерфейсы: обзор

Интерфейс - это тип данных, содержащий набор заголовков методов и свойств, предназначенных для реализации некоторым классом. Интерфейсы описываются в разделе typeследующим образом:

ИмяИнтерфейса = interface

объявления методов и свойств

end;

Для метода приводится только заголовок, для свойства после возвращаемого типа указываются необходимые модификаторы доступа read и write.

Например:

type

IShape = interface

procedureDraw;

propertyX: integer read;

propertyY: integer read;

end;

ICloneable = interface

functionClone: Object;

end;

Поля и статические методы не могут входить в интерфейс.

Класс реализует интерфейс, если он реализует все методы и свойства интерфейса в public-секции. Если класс не реализует хотя бы один метод или свойство интерфейса, возникает ошибка компиляции. Класс может реализовывать также несколько интерфейсов. Список реализуемых интерфейсов указывается в скобках после ключевого слова class(если указано имя предка, то после имени предка).

Например:

type

Point = class(IShape,ICloneable)

private

xx,yy: integer;

public

constructorCreate(x,y: integer);

begin

xx := x; yy := y;

end;

procedureDraw; begin end;

propertyX: integer readxx;

propertyY: integer readyy;

functionClone: Object;

begin

Result := new Point(xx,yy);

end;

procedurePrint;

begin

write(xx,' ',yy);

end;

end;

Интерфейсы можно наследовать друг от друга:

type

IPosition = interface

propertyX: integer read;

propertyY: integer read;

end;

IDrawable = interface

procedureDraw;

end;

IShape = interface(IPosition,IDrawable)

end;

Интерфейс по-существу представляет собой абстрактный класс без реализации входящих в него методов. Для интерфейсов, в частности, применимы все правила приведения типов объектов: тип объекта, реализующего интерфейс, может быть неявно приведен к типу интерфейса, а обратное преобразование производится только явно и может вызвать исключение при невозможности преобразования:

varip: IShape := new Point(20,30);

ip.Draw;

Point(ip).Print;

Все методы класса, реализующего интерфейс, являются виртуальными без использования ключевых слов virtualили override. В частности, ip.Draw вызовет метод Draw класса Point. Однако, цепочка виртуальности таких методов обрывается. Чтобы продолжить цепочку виртуальности методов, реализующих интерфейс, в подклассах, следует использовать ключевое слово virtual:

type

Point = class(IShape,ICloneable)

...

functionClone: Object; virtual;

begin

Result := new Point(xx,yy);

end;

end;

Для интерфейсов, как и для классов, можно также использовать операции isи as:

ifip isPoint then

...

varp: Point := ip asPoint;

ifp<>nil then

writeln('Преобразование успешно');

Реализация нескольких интерфейсов

Несколько интерфейсов могут содержать одинаковые методы или свойства. При наследовании от таких интерфейсов такие одинаковые методы или свойства сливаются в один:

type

IShape = interface

procedureDraw;

propertyX: integer read;

propertyY: integer read;

end;

IBrush = interface

procedureDraw;

propertySize: integer read;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Описание языка PascalABC.NET отзывы


Отзывы читателей о книге Описание языка PascalABC.NET, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x