Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Error Trapping (http://www.velocityreviews.com/forums/t359264-error-trapping.html)

JohnJohnUSA 07-02-2006 06:41 AM

Error Trapping
 
I ran the following program to retrieve entries from the window
registry on Windows XP

import win32api, win32co
aReg = win32api.RegConnectRegistry(None
win32con.HKEY_CURRENT_USER
aKey = win32api.RegOpenKeyEx(aReg
r"Software\Microsoft\Internet Explorer\PageSetup"
for i in range(100)
Name, Data, Type = win32api.RegEnumValue(aKey, i
print "Index=(", i,") Name=["
Name,"] Data=[",Data,"
Type=[",Type,"]
win32api.RegCloseKey(aKey

This is the program output

[code:1:8bb6fccb25]Index=( 0 ) Name=[ header
Data=[ &w&bPage &p of &P ] Type=[

Index=( 1 ) Name=[ footer ] Data=
&u&b&d ] Type=[ 1
Index=( 2 ) Name=[ margin_bottom ] Data=[ 0.75000
] Type=[ 1
Index=( 3 ) Name=[ margin_left ] Data=[ 0.75000
] Type=[ 1
Index=( 4 ) Name=[ margin_right ] Data=[ 0.75000
] Type=[ 1
Index=( 5 ) Name=[ margin_top ] Data=[ 0.75000
] Type=[ 1

Traceback (most recent call last)
File "F:/temp/Python Test Folder/Read Windows Registr
Entries (No error trapping).py", line 5, in -toplevel
Name, Data, Type = win32api.RegEnumValue(aKey, i
error: (259, 'PyRegEnumValue', 'No more data i
available.')[/code:1:8bb6fccb25

I received an error because I tried to read past the last entry fo
this key. The following is a modified version of the program to tra
any error on key entry retrieval

[code:1:8bb6fccb25]import win32api, win32con, sy
aReg = win32api.RegConnectRegistry(None
win32con.HKEY_CURRENT_USER
aKey = win32api.RegOpenKeyEx(aReg
r"Software\Microsoft\Internet Explorer\PageSetup"
for i in range(100)
try
Name, Data, Type = win32api.RegEnumValue(aKey, i
print "Index=(", i,") Name=["
Name,"] Data=[",Data,"
Type=[",Type,"]
except
brea
win32api.RegCloseKey(aKey)[/code:1:8bb6fccb25

This is the program output

[code:1:8bb6fccb25]Index=( 0 ) Name=[ header
Data=[ &w&bPage &p of &P ] Type=[

Index=( 1 ) Name=[ footer ] Data=
&u&b&d ] Type=[ 1
Index=( 2 ) Name=[ margin_bottom ] Data=[ 0.75000
] Type=[ 1
Index=( 3 ) Name=[ margin_left ] Data=[ 0.75000
] Type=[ 1
Index=( 4 ) Name=[ margin_right ] Data=[ 0.75000
] Type=[ 1
Index=( 5 ) Name=[ margin_top ] Data=[ 0.75000
] Type=[ 1 ][/code:1:8bb6fccb25

The latter program will trap any error resulting from trying t
retrieve the key values. What I want to do is to specifically tra
the error denoting that there is no more data available so I ca
continue executing more code as oppose to aborting the program. i
the error is something other than no more data available, then I wan
to abort the program with an error message

What code is needed to specifically trap the "no more data i
available" error

Thank you in advance for your help



All times are GMT. The time now is 10:26 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.