doug shawhan wrote:
> Hi Andy,
> 
> Putting a try:/except: loop in your __main__() (or whatever you call
> your base function) with sys.exit("Message") is pretty much the way I
> always do it.
> 
> try:
>     gak = puke + die
> except:
>     sys.exit("Oy!")
> 
> If you would like sys.exit() to provide you with a bit more
> information (like what actually happened during the failure and
> where!) I found this handy function:
> 
> 
> def formatExceptionInfo(maxTBlevel=5):
>       cla, exc, trbk = sys.exc_info()
>       excName = cla.__name__
>       try:
>               excArgs = exc.__dict__["args"]
>       except KeyError:
>               excArgs = "<no args>"
>       
>       excArgsString = ''
>       for item in excArgs:
>               excArgsString = excArgsString + ' ' + str(item)
>       
>       excTb = traceback.format_tb(trbk, maxTBlevel)
>       excTbString = ''
>       for item in excTb:
>               excTbString = excTbString + " " + str(item)
>       
>       report = "%s %s %s"%(excName, excArgsString, excTbString)
>       return(report)
> 
> This function now goes in most of what I do that requires error reporting.
> 
> Hope this helps!
> 
> On 6/13/06, Andy Koch <[EMAIL PROTECTED]> wrote:
>> Bkgd: I've been doing PHP for the last several years.
>>
>> Q: In PHP there are functions die and exit which terminate processing of
>> a script with an optional string output.  Is there something similar to
>> this in Python?
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor@python.org
>> http://mail.python.org/mailman/listinfo/tutor
>>
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor
> 
Hi Doug,

copied and pasted, thanks

although my reason for the die() was that I've started using Python to 
do DB maintenance. I find it very handy (ie IDLE) and the DB api's for 
all the different DB's I work with are nice and standardized (PHP could 
learn a thing there).  One thing that has happened, though, is that I've 
clicked (via Winders Explorer) on a .py to open it for edit only to it 
have run, which is not what I want when the code could start modifying 
data.  Thus far it hasn't caused any damage.  So my safety check is to 
do a raw_input from a commonly included module which does the sys.exit() 
if running the code is not desired.

A basic safety catch.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to