C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet129/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   125   126   127   128   129   130   131   132   ...   266
Bog'liq
C# for beginners


Глава 9. Обработка исключительных ситуаций 
201 
который должен выполняться после блока 
try...catch
, достаточно 
вставить блок 
finally
в конце последовательности операторов 
try...catch
. Далее приведена общая форма совместного использования 
блоков 
try...catch
и 
finally

try 

// Участок, предназначенный для обработки ошибок 

catch () 

// Обработчик исключения 

finally { 
// Участок завершения обработки исключений: 
// закрытие нужных файлов, разрыв соединений и т. п. 

Блок 
finally
будет выполняться всякий раз, когда происходит выход из 
блока 
try...catch
, независимо от причин, которые к этому привели. 
Это означает, что если блок 
try
завершается нормально или по причине 
исключения, то последним выполняется участок программы, опреде-
ляемый в блоке 
finally
. В случае нашего примера в листинге 9.2 после 
закрывающей скобки от 
catch
можно было бы поставить участок: 
finally 
{Console.WriteLine("Конец программы");} 
Окончательный вид программы представлен в листинге 9.3. Результат 
ее работы — на рис. 9.3. 
Листинг 9.3 
/* Created by SharpDevelop. 
* User: user 
* Date: 06.12.2012 
* Time: 12:32 

* To change this template use Tools | Options | Coding | 
* Edit Standard Headers. */ 
using System; 
namespace app34_exeption 

class Program 

static void Main() 


202 
Часть II. Объектно-ориентированное программирование 

Console.WriteLine("Ввод строк длиной не более 5 " + 
"символов"); 
int i = (Console.ReadLine().Length); 
try 

if (i > 5) 
// Генерируем исключение 
throw new Exception(); // OverflowException (); 

catch (Exception ex) // ExceptionOverflow 

ex.HelpLink="Micrisoft.com"; 
Console.WriteLine("Длина строки более 5 " + 
"символов"); 
Console.WriteLine("Message = {0}", ex.Message); 
Console.WriteLine("Source = {0}", ex.Source); 
Console.WriteLine("StackTrace = {0}", 
ex.StackTrace); 
Console.WriteLine("TargetSite = {0}", 
ex.TargetSite); 
Console.WriteLine("HelpLink = {0}", ex.HelpLink); 

finally 

Console.WriteLine("Конец программы"); 

Console.ReadLine(); 



Рис. 9.3. 
Обработка исключительной ситуации — результат 


ГЛ А В А
10 
Интерфейсы 
Интерфейс — дословно "сопряжение". В нашем случае это некоторая 
программа, обеспечивающая взаимодействие между другими програм-
мами или их частями. В рамках языка С# интерфейсы — это какие-то 
абстрактные члены, объединенные под одним именем. Это как бы абст-
рактные классы, но более узкие. Абстрактные классы, кроме абстракт-
ных членов содержат еще конструкторы, поля данных, неабстрактные 
члены (члены с реализацией). Интерфейсы содержат только абстракт-
ные члены. 
Для чего их ввели в язык? Дело в том, что абстрактные классы позво-
ляют настраивать свои члены только в классах-наследниках (потомках). 
Если же у вас в проекте имеется множество несвязанных классовых
иерархий, а вам надо, чтобы в этих иерархиях было бы обращение к 
одному и тому же методу, который что-то там делает (в данном случае 
говорят: надо, чтобы в иерархиях поддерживался один и тот же поли-
морфный интерфейс), то приходится настраиваться в каждой из таких 
иерархий на метод (на абстрактный метод), который находится в про-
граммной сущности под названием "интерфейс". Ваш данный конкрет-
ный класс подключается как бы к этому интерфейсу (по синтаксису это 
происходит как и при наследовании: через двоеточие, только вместо 
класса родителя пишется конкретный интерфейс, из которого будет за-
имствован необходимый метод). Причем в C# не допускается множест-
венное наследование, т. е. построение класса на основании нескольких 
классов, чтобы вытащить из них нужные члены, а "наследование" от 
нескольких интерфейсов допускается. Итак, интерфейс — это заголовки 
неких абстрактных методов, объединенных под одним именем — име-
нем интерфейса. Например, некий интерфейс 
IFILE
может содержать 
методы 
Fileopen()

FileClose()
и др. 


204 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   125   126   127   128   129   130   131   132   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish