Error type for shelve.open()

Simon Forman rogue_pedro at yahoo.com
Wed Jul 5 21:29:52 EDT 2006


aomighty at gmail.com wrote:
> I wanted to write the following code:
>
> import shelve
> try:
>    db = shelve.open(file, "r")
> except SomeError:
>    print "Oh no, db not found"
>
> Only, I'm not sure what SomeError should be. I tried error,
> anydbm.error, shelve.open.anydb.error, etc. but can't find it. Things
> worked fine with simply except:, but that's not optimal.
>
> Does anyone know either the what the error is or where I can find it
> for certain?
>
> Thanks,
> Martin

What error did you get with just the bare except?

you can find out by saying (for instance):

>>> try:
	1/0
except Exception, err:
	E = err


>>> E
<exceptions.ZeroDivisionError instance at 0xb6efd8cc>


or to get really fancy, use the traceback module

>>> from traceback import format_exc
>>> try:
	1/0
except:
	print format_exc()


Traceback (most recent call last):
  File "<pyshell#10>", line 2, in ?
ZeroDivisionError: integer division or modulo by zero



Peace,
~Simon




More information about the Python-list mailing list