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



Download 6,27 Mb.
Pdf ko'rish
bet378/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   374   375   376   377   378   379   380   381   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

ПриМеЧание
Можно.возразить,.что.информация.о.месте.возникновения.ошибки.важнее.сведений.
о.ее.содержании .Например,.полезнее.было.бы.знать,.что.перевод.денег.со.счета.не.
произошел,.а.не.то,.что.метод.Transfer.не.сработал.из-за.исключения.SecurityException.
или.OutOfMemoryException .На.самом.деле,.модель.обработки.ошибок.Win32.дей-
ствует.следующим.способом:.методы.возвращают.значение.true.или.false,.указывая.
на.результативность.своей.работы .Это.дает.вам.информацию.о.том,.какой.именно.
метод.стал.причиной.проблемы .Затем,.если.в.программе.предусмотрен.поиск.ин-
формации.о.причинах.сбоя,.вызывается.метод.GetLastError .В.классе.System Exception.
присутствует.свойство.Source,.указывающее.имя.незавершенного.метода .Но.это.
свойство.принадлежит.к.типу.String,.поэтому.вам.придется.самостоятельно.анализи-
ровать.полученные.данные .К.тому.же.в.ситуации,.когда.два.метода.вызывают.один.и.
тот.же.метод,.свойство.Source.не.поможет.вам.понять,.где.именно.произошел.сбой .
Вместо.этого.придется.анализировать.строку,.возвращенную.свойством.StackTrace.
класса.Exception .Из-за.всех.этих.сложностей.я.пока.еще.не.встречал.программиста,.
написавшего.подобный.код 
Существуют несколько подходов, 
способных
сгладить проблему испорченного 
состояния:
‰
CLR запрещает аварийно завершать потоки во время выполнения кода блоков 
catch
и 
finally
. Поэтому сделать метод 
Transfer
более устойчивым можно 
следующим способом:
public static void Transfer(Account from, Account to, Decimal amount) {
try { /* здесь ничего не делается */ }
finally {
from -= amount;
// Прерывание потока (из-за Thread.Abort/AppDomain.Unload)
// здесь невозможно
to += amount;
}
}
Тем не менее я настоятельно не рекомендую помещать весь код внутрь 
блоков 
finally
! Этот прием можно использовать только для изменения самых 
чувствительных состояний.
‰
Класс 
System.Diagnostics.Contracts.Contract
позволяет применять к методам 
контракты кода. Именно они позволяют проверять аргументы и другие пере-


522
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   374   375   376   377   378   379   380   381   ...   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