Professional IronPython


Defining and Using Exceptions



Download 20,35 Mb.
Pdf ko'rish
bet279/453
Sana01.07.2022
Hajmi20,35 Mb.
#723045
1   ...   275   276   277   278   279   280   281   282   ...   453
Defining and Using Exceptions
 

 
265
except ZeroDivisionError as (errinfo):
print “\nDivide by Zero error: {0}“.format(errinfo)
# Create a custom exception.
try:
raise MyError(5, ‘Hello from MyError’)
except MyError, Info:
print “Custom Error({0}): {1}“.format(Info.errno, Info.message)
# Pause after the debug session.
raw_input(‘\nPress any key to continue...’)
The code begins by importing 
exceptions
. The 
for
loop lists all of the exceptions
(the names of the types) found in exceptions, as shown in Figure 12-15. Notice how the code uses
if ‘Error‘ in Error
to locate just the exceptions in the module. This technique is useful for a lot 
of tasks in IronPython where you need to filter the output in some way.
FIgURE 12-15: 
The example shows basic exception handling and creation for Python.
The next bit of code raises a standard exception and then handles it. The output shows just a message. 
Notice that this exception relies on the 
as
clause to access the error information.
548592c12.indd 265
2/24/10 12:48:50 PM
www.finebook.ir


266

CHAPTER 12
Debugging ironPython APPlicAtions
It’s time to look at a custom exception, which begins with the 
MyError
class definition. At a 
minimum, you should define both 
__init__()
and 
__str__()
or the exception won’t work as 
intended. Notice how 
__init__()
assigns default values to both 
errno
and 
message
. You can’t 
depend on the caller to provide this information, so including default values is the best way to ap-
proach the problem. You can always assign other values later in the code based on the actual errors.
Make sure you create attributes for any amplifying information you want the caller to have. In this 
case, the example defines two attributes 
errno
and 
message
.
The 
__str__()
method should return a human-readable message. You can return just the text 
portion of the exception or return some combination of exception attributes. The important thing 
is to return something that the developer will find useful should the exception occur. You can test 
this behavior out with the example by typing 
raise MyError
. Here’s the output you’ll see.
Traceback (most recent call last):
File “”, line 1, in
__main__.MyError: ‘Nothing’
Because you didn’t provide any arguments, the output shows the default values. Try various 
combinations to see how the output works. The example tries the exception in a 
try...except
statement. Notice that a custom exception differs from a standard exception in that you don’t use 
the 
as
clause and simply provide a comma with a variable (
Info
in this case) instead. You can then 
use the variable to access the exception attributes as shown. Figure 12-15 shows how the custom 
exception outputs information. Of course, your custom exception can provide any combination of 

Download 20,35 Mb.

Do'stlaringiz bilan baham:
1   ...   275   276   277   278   279   280   281   282   ...   453




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