This print for content only-size & color not accurate 7" X 9-1/4" / casebound / malloy


// This time, throw an exception if the user speeds up beyond MaxSpeed



Download 21,46 Mb.
Pdf ko'rish
bet458/1830
Sana28.09.2021
Hajmi21,46 Mb.
#188411
1   ...   454   455   456   457   458   459   460   461   ...   1830
Bog'liq
[book] [en] Pro C# 2008 and the NET 3.5 Platform Fourth Edition

// This time, throw an exception if the user speeds up beyond MaxSpeed.

public void Accelerate(int delta)

{

C H A P T E R   7  



U N D E R S TA N D I N G   S T R U C T U R E D   E X C E P T I O N   H A N D L I N G



224

8849CH07.qxd  10/1/07  10:38 AM  Page 224




if (carIsDead)

Console.WriteLine("{0} is out of order...", petName);

else

{

currSpeed += delta;



if (currSpeed >= MaxSpeed)

{

carIsDead = true;



currSpeed = 0;

// Use the "throw" keyword to raise an exception.

throw new Exception(string.Format("{0} has overheated!", petName));

}

else


Console.WriteLine("=> CurrSpeed = {0}", currSpeed);

}

}



Before examining how a caller would catch this exception, a few points of interest. First of all,

when you are throwing an exception, it is always up to you to decide exactly what constitutes the

error in question, and when it should be thrown. Here, you are making the assumption that if the

program attempts to increase the speed of a car that has expired, a System.Exception type should

be thrown to indicate the Accelerate() method cannot continue (which may or may not be a valid

assumption).

Alternatively, you could implement Accelerate() to recover automatically without needing to

throw an exception in the first place. By and large, exceptions should be thrown only when a more

terminal condition has been met (for example, not finding a necessary file, failing to connect to a

database, and whatnot). Deciding exactly what constitutes throwing an exception is a design issue

you must always contend with. For our current purposes, assume that asking a doomed automobile

to increase its speed justifies a cause to throw an exception.




Download 21,46 Mb.

Do'stlaringiz bilan baham:
1   ...   454   455   456   457   458   459   460   461   ...   1830




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