Actually, I do have a lot more exception handling going on. I just tried to keep the code simple to demonstrate the problem. But yeah, if I except in a way I am not expecting (ie: anything but a record exists) I handle it differently.
Thanks for the tips though, and most definatly for making sure I am using good practices :) Rex From: "Mark Hammond" <[EMAIL PROTECTED]> To: "'Rex Corrovan'" <[EMAIL PROTECTED]>,<python-win32@python.org> Subject: RE: [python-win32] Recovering from AODB Exceptions, possible? Date: Sat, 10 Feb 2007 18:04:19 +1100 > So I have a function that ries to add a record: > > def EntryAdd(self, dataDict): > try: > self._DBConn.MoveFirst() > self._DBConn.AddNew() > for key, value in dataDict.items(): > self._DBConn.Fields.Item(key).Value = value > self._DBConn.Update() > except pywintypes.com_error, e: > print e > print 'error text here' > return True > > So if the error already exists I get an exception, no > problem, I handle and > log it. In general, you should try and be specific about handling exceptions. Assuming you want to only handle "record exists" type exceptions, you should probably write something closer to: def EntryAdd(self, dataDict): self._DBConn.MoveFirst() self._DBConn.AddNew() for key, value in dataDict.items(): self._DBConn.Fields.Item(key).Value = value try: self._DBConn.Update() except pywintypes.com_error, e: hr, msg, exc = e if hr != SOME_CONSTANT_MEANING_RECORD_EXISTS: raise print e print 'record exists' return True I'm not sure what SOME_CONSTANT_MEANING_RECORD_EXISTS is, and it may even be necessary to unpacl 'exc' to get a reliable error code. All other errors will still result in an uncaught exception - so any other errors you have are not silently handled as if they were the common "record exists". You probably still want an outer exception handler that handles all errors in a sane way Mark _________________________________________________________________ Invite your Hotmail contacts to join your friends list with Windows Live Spaces http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us _______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32