Re: exception problem
On 06/24/2012 03:43 PM, Charles Hixson wrote:
> On 06/24/2012 03:36 PM, Chris Angelico wrote:
>> On Mon, Jun 25, 2012 at 8:26 AM, Charles Hixson
>> <email@example.com> wrote:
>>> The code:
>>> print ("at finally")
>>> print ("chunks =")
>>> produces this result:
>>> path 3...
>> Can you state more clearly the problem, please? I'm seeing output that
>> can't have come from the code posted (for instance, immediately after
>> the "at finally", I'm expecting to see the "chunks =" line), and I'm
>> not seeing any exception information, so I can't even hazard a guess
>> as to what's throwing the exception.
>> Presumably these are two methods in the same class, since you're
>> calling it as "self.chunkLine", but beyond that, it's hard to know.
>> Take off the try/except and let your exception go to console, that's
>> usually the easiest thing to deal with.
>> Chris Angelico
> Sorry, but it *DID* come from the code posted. Which is why I was so
> confused. I finally tracked it down to "self was not defined" by
> altering the except section to read:
> except BaseException as ex:
> print ("caught exception")
> print (ex)
> print ("at finally")
The documentation section covering the except statement could stand to
be a *LOT* clearer. I read the sections on the except statement and
exception handlers several times and couldn't figure out was the "as"
argument of the except statement was for. "Target" doesn't communicate
much to me. The one I finally used as indicated above was modified from
some code that I found through Google. I still don't really know what
"as" means, except that if you use it, and you print out the "target",
you'll get some kind of informative message. (The one that I got said
"self was not defined" .. that's a paraphrase. I can't remember the
precise wording.) And that interpretation is based on what the result
was, not on anything said in the documentation.
IIRC, the Python2 documentation used code examples to indicate what was
the right way to write an exception handler. I realize that Python3 is
much different, but that approach was a very good one.