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

Reply via email to