On 06/24/2012 03:43 PM, MRAB wrote:
On 24/06/2012 23:26, Charles Hixson wrote:
The code:
print ("pre-chunkLine")
chunks = []
try:
chunks = self.chunkLine (l)
except:
print ("caught exception")
print (sys.exc_info()[:2])
finally:
print ("at finally")
print ("chunks =")
print (repr(chunks), ".", end = ":")
produces this result:
. . ., by
pre-chunkLine
caught exception
at finally
path 3...
Any suggestions as to what's wrong with the code?
FWIW, chunkLine begins:
def chunkLine (self, line):
print ("chunkLine: ")
print ("line = ", line)
if line == None:
return []
assert (isinstance (line, str) )
Don't use a bare "except"; it'll catch _any__exception. Catch only what
you expect.
For all I know, it could be that the name "l" doesn't exist.
But what I wanted was to catch any exception. A problem was happening
and I had no clue as to what it was. (It turned out to be "self is not
defined". A silly mistake, but a real one.)
The odd thing was that if I ran it without the try block, I didn't get
any exceptions at all. (Which I clearly should have, except that since
self wasn't defined, I'd usually expect the interpreter to detect the
error before trying to execute the code.)
--
Charles Hixson
--
http://mail.python.org/mailman/listinfo/python-list