Hi Steve,

take a look at part 8.3 Handling Exceptions of the Python tutorial. It 
states:
"The try ... except statement has an optional /else clause/, which, when 
present, must follow all except clauses. It is useful for code that must 
be executed if the try clause *does not* raise an exception."

Take a look at your code, now. If main raises any exception, it is 
reraised and never handled. Furthermore the else clause is never 
executed. I think the following piece of code demonstrates pretty clear 
what happens:

import sys

def main():
    print "In function main."
    #raise

try:
    main()
except:
    print "Exception catched in __main__"
    raw_input("Please press Enter to quit")
else:
    print "In else-clause of try-except-else clause"
    print "Press RETURN to exit..."
    sys.stdin.readline()

Save it in a file and double click on it. The window remains open and 
you will get the following output:

In function main.
In else-clause of try-except-else clause
Press RETURN to exit...

Uncomment the raise statement in function main. Double click, again. The 
window remains open and you get the following output:

In function main.
Exception catched in __main__
Please press Enter to quit

HTH
Frank


[EMAIL PROTECTED] schrieb:
> Howdy,
>
> I installed Active State Python, and wrote a simple script, say
> 'foo.py'.  If I double-click on 'foo.py' from the windows explorer, a
> console window opens, the script executes, and the window closes
> again.
>
> I'd like the window to stick around if there are any exceptions
> raised.  I tried to put all my code in function main() and use
>
> try:
>     main()
> except None:
>     raise
> else:
>     print "Press RETURN to exit..."
>     sys.stdin.readline()
>
>
> No dice: the window closes even if main() raises an exception.  
> Any idea how to do it?
>
> Thanks,
> -Steve
>
> _______________________________________________
> ActivePython mailing list
> ActivePython@listserv.ActiveState.com
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
> Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython
>
>
>   
_______________________________________________
ActivePython mailing list
ActivePython@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython

Reply via email to