Re: aborting without killing the python interpreter

2006-02-19 Thread Fabrizio Milo
import sys

def main():
print 'exiting'
sys.exit()

try:
   main()
except SystemExit:
   pass


 I suspect I may need to use exceptions, but I'm hoping
 not to need them. Thanks.

Use the Exceptions!
-- 
http://mail.python.org/mailman/listinfo/python-list


aborting without killing the python interpreter

2006-02-18 Thread Russ
I wrote a simple little function for exiting with an error message:

def error ( message ): print_stack(); exit (\nERROR:  + message +
\n)

It works fine for executing as a script, but when I run it
interactively in the python interpreter it kills the interpreter.
That's not what I want. Is there a simple way to have a script
terminate but not have it kill the python interpreter when I run it
interactively? I suspect I may need to use exceptions, but I'm hoping
not to need them. Thanks.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Terry Reedy

Russ [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]
I wrote a simple little function for exiting with an error message:

 def error ( message ): print_stack(); exit (\nERROR:  + message +
 \n)

 It works fine for executing as a script,

How?  In the standard interpreter, 'exit' is bound to the string
'Use Ctrl-Z plus Return to exit.'
so trying to call it as a function fails.

 but when I run it
 interactively in the python interpreter it kills the interpreter.
 That's not what I want. Is there a simple way to have a script
 terminate but not have it kill the python interpreter when I run it
 interactively? I suspect I may need to use exceptions, but I'm hoping
 not to need them. Thanks.

The interactive interpreter runs a statement at a time and gives a prompt 
after any output.  From a command shell, you can use a flag (-i I think) to 
enter interactive mode after the script end.

Terry Jan Reedy



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Terry Reedy
correction

Terry Reedy [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]
 How?  In the standard interpreter, 'exit' is bound to the string
 'Use Ctrl-Z plus Return to exit.'

This is, of course, Windows specific.  Other systems have other strings. 



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Erik Max Francis
Terry Reedy wrote:

 How?  In the standard interpreter, 'exit' is bound to the string
 'Use Ctrl-Z plus Return to exit.'
 so trying to call it as a function fails.

I'm _presuming_ there was a hidden `from sys import *` in there.  Hence 
calling exit with the string (the help for sys.exit shows that if a 
string is passed in, it will be printed before the process exits with 
failure -- something I wasn't aware of actually).

-- 
Erik Max Francis  [EMAIL PROTECTED]  http://www.alcyone.com/max/
San Jose, CA, USA  37 20 N 121 53 W  AIM erikmaxfrancis
   God heals, and the doctor takes the fee.
   -- Benjamin Franklin
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Robert Kern
Russ wrote:
 I wrote a simple little function for exiting with an error message:
 
 def error ( message ): print_stack(); exit (\nERROR:  + message +
 \n)
 
 It works fine for executing as a script, but when I run it
 interactively in the python interpreter it kills the interpreter.
 That's not what I want. Is there a simple way to have a script
 terminate but not have it kill the python interpreter when I run it
 interactively? I suspect I may need to use exceptions, but I'm hoping
 not to need them. Thanks.

Exceptions do *exactly* what you want in a very clean and simple way. They are a
fundamental feature of Python. Do not fear them. They are your friends.

-- 
Robert Kern
[EMAIL PROTECTED]

In the fields of hell where the grass grows high
 Are the graves of dreams allowed to die.
  -- Richard Harter

-- 
http://mail.python.org/mailman/listinfo/python-list