AssertionError not caught?

Steve Holden steve at holdenweb.com
Mon Feb 2 04:01:29 CET 2009


LX wrote:
> This one has me mystified good!
> 
> This works (print statement is executed as the Exception is caught) as
> advertised:
>     try:
>         raise AssertionError
>     except AssertionError:
>         print "caught AssertionError"
> 
> 
> But this one does not:
> 
>    def test():
>         raise AssertionError
> 
>     try:
>         test()
>     except AssertionError:
>         print "caught AssertionError"
> 
> other errors (e.g. IOError) work fine! This is on OSX 10.5.6, with the
> standard Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)
> [GCC 4.0.1 (Apple Computer, Inc. build 5341)].
> 
> Is this a bug? Any hints / help would be much appreciated! Thank you.

This works for me under Cygwin:

>>> def test():
...     raise AssertionError
...
>>> try:
...     test()
... except AssertionError:
...     print "caught AssertionError"
...
caught AssertionError
>>>

I note from your indentation that it looks as though your code was
guarded by some other statement. Is it possible it wasn't executed at all?

regards
 Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/




More information about the Python-list mailing list