Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet358/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   354   355   356   357   358   359   360   361   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Определение «исключения»
Конструируя тип, мы заранее пытаемся представить, в каких ситуациях он будет 
использоваться. В качестве имени типа обычно выбирается существительное, на-
пример 
FileStream
или 
StringBuilder
. Затем задаются свойства, события, методы 
и т. п. Форма определения этих членов (типы данных свойств, параметры методов, 
возвращаемые значения и т. п.) становится программным интерфейсом типа. Именно 
члены определяют допустимые действия с типом и его экземплярами. Для их имен 
обычно выбираются глаголы, например 
Read

Write

Flush

Append

Insert

Remove
и т. п. Если член не может решить возложенную на него задачу, программа должна 
выдать исключение. Рассмотрим следующее определение класса:
internal sealed class Account {
public static void Transfer(Account from, Account to, Decimal amount) {
from -= amount;
to += amount;
}
}


497
Определение.«исключения»
Метод 
Transfer
принимает два объекта 
Account
и значение 
Decimal
, определяя, 
сколько средств переводится с одного счета на другой. Очевидно, что этот метод 
должен вычитать деньги с одного счета и прибавлять их к другому. Но есть ряд 
обстоятельств, которые могут помешать его работе. Например, аргумент 
from
или 
to
может иметь значение 
null
; аргументы 
from
или 
to
могут не соответствовать 
открытым счетам; на счету, с которого предполагается взять деньги, может оказать-
ся недостаточно средств; на целевом счету может оказаться так много денег, что 
перевод дополнительной суммы станет причиной переполнения; аргумент 
amount
может быть равен 0, иметь отрицательное значение или иметь более двух знаков 
после запятой.
При вызове метода 
Transfer
следует учитывать все перечисленные ситуации 
и при выявлении любой из них оповещать вызывающий код, генерируя исключение. 
Обратите внимание, что возвращаемое методом значение принадлежит к типу 
void

То есть метод 
Transfer
просто завершает свою работу, если завершение происходит 
в обычном режиме, или генерирует исключение в противном случае.
Объектно-ориентированное программирование обеспечивает высокую эффек-
тивность труда разработчиков, так как позволяет писать, например, такой код:
Boolean f = "Jeff".Substring(1, 1).ToUpper().EndsWith("E"); // true
Здесь я реализую свои намерения, объединяя несколько операций
1
. Этот код 
легко читается и редактируется, так как его назначение очевидно. Мы берем строку, 
выделяем ее часть, приводим символы этой части к верхнему регистру и смотрим, 
заканчивается ли выделенный фрагмент символом 
"E"
. При этом делается до-
пущение, что все упомянутые операции успешно завершаются. Хотя, разумеется, 
от ошибок никто не застрахован. Соответственно, с ними нужно что-то делать. 
Существует множество объектно-ориентированных средств — конструкторы, ин-
струменты просмотра/задания свойств, добавления/удаления событий, вызовы 
перегрузки операторов, вызовы операторов преобразования типа, — которые не 
умеют возвращать код ошибки. Но даже они должны каким-то способом сообщать 
о ее наличии. В .NET Framework и всех поддерживаемых этой платформой языках 
программирования для этой цели существует специальный механизм, называемый 
обработкой исключений
(exception handling).

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   354   355   356   357   358   359   360   361   ...   658




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