Exception not raised

Michele Petrazzo michele.petrazzo at TOGLIunipex.it
Fri Feb 24 12:18:01 EST 2006


Hi list, I have a strange error on my software on win 2k/xp and debian
3.1 with py 2.3.5 / 2.4.1 + twisted + wxpython:

python, on a piece of code doesn't raise a KeyError on a dict (that
don't have that key), but the strange thing is that the try/except code
see that exception. Other strange thing is that other exceptions are raised!

Simple example extract from my code:

#code
def test():
  print type(t_fields), 11 in t_fields
  print t_fields[11]
  print "I'm here"

print "ok"
test()
print "ok"
#end code

Output:

ok
<type 'dict'> False

Here I see only one "ok" and not the "I'm here". The interpreter stop to
run here, but the application continue to work!

Other try:

#code
def test():
  try:
   print type(t_fields), 11 in t_fields
   print t_fields[11]
  except KeyError, ex:
   print "Error",  ex
#end code

Output:

ok
<type 'dict'> False
Error 11
ok

Here the output is ok, so python see that exception inside the
try/except and print it.

Last try:

#code
def test()
  print type(t_fields), 11 in t_fields
  print dont_exist
  print t_fields[11]
#end code

Output:

ok
<type 'dict'> False
File "conn.py", line 231, in test
     print dont_exist
NameError: global name 'dont_exist' is not defined


So all the exception are raised except the KeyError outside the try/except!

I don't know what can be.

Thanks to all that can help me.
Michele



More information about the Python-list mailing list