From: Kent J. <ke...@td...> - 2004-03-08 03:15:33
|
Sure. Is this what you mean? Jython 2.1 on java1.4.2_03 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> def raiser(): ... raise NotImplementedError ... >>> def catcher(): ... try: ... raiser() ... except: ... if exception_aborts: ... print 'propagating exception' ... raise ... else: ... print 'logging exception' ... import traceback ... traceback.print_exc() ... >>> exception_aborts=1 >>> catcher() propagating exception Traceback (innermost last): File "<console>", line 1, in ? File "<console>", line 7, in catcher File "<console>", line 2, in raiser NotImplementedError: >>> exception_aborts=0 >>> catcher() logging exception Traceback (most recent call last): File "<console>", line 2, in raiser NotImplementedError >>> Kent > > From: Satya Ghattu <sg...@be...> > Date: 2004/03/07 Sun PM 07:31:51 EST > To: jyt...@li... > Subject: [Jython-users] continue script execution in case of error > > While running a script if an error / exception is raised, depending on a > variable setting i would like to stop the execution of the script or > print the error and continue with the script execution. > Is there a way to do this? > > Thanks, > -satya > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Updike, C. <Cla...@jh...> - 2004-03-08 15:09:47
|
This doesn't really solve your problem if your looking for a very general solution, however: # example.py abortOnError=1 # this is a global variable print 'Executing example' if locals().has_key('notDefined'): print 'Now this will raise a NameError '+notDefined print 'Continue execution ... ' print 'end of script' The point is that many/most error conditions can be detected before they actually cause the exception. And I'd tend to agree with Diez that a general solution could be dangerous. You could use a wrapper function and exec to ignore a list of errors in specific chunks of code: # example.py def suppressErrors(suspectCode, ignoreErrors): try: exec(code) except: if abortOnError == 1: raise else: if sys.exc_info()[0] in ignoreErrors: pass else: raise abortOnError=1 # this is a global variable print 'Executing example' code = """ print 'Now this will raise a NameError '+notDefined """ suppressErrors(code, [NameError]) print 'Continue execution ... ' print 'end of script' But it isn't very elegant. You'd also want to compile and cache the code chunks using this if performance was important. -Clark -----Original Message----- From: Diez B. Roggisch Subject: Re: [Jython-users] continue script execution in case of error > This simple script raises a NameError for 'notDefined' since that > variable is not defined. I would like this script not to abort > execution even if any error is raised and continue to the next line > (since the user defined abortOnError=1). I initially thought this > could be achieved by defining a custom exceptionhook, but that did not > solve my problem. AFAIK thats not possible - for good reasons. Its like using "on error resume next" in VB. And thats one of its worst "features" It leads to horrible bugs as wrongly or uninitialized vars produce errors in otherwise unaffected portions of your code. So I suggest you carefully examine the portions of your code that can produce errors and deal with them accordingly. Regards, Diez B. Roggisch |
From: Satya G. <sg...@be...> - 2004-03-08 11:51:22
|
Thanks kent. I am looking for something like this. Say I have a script something like this, # example.py abortOnError=1 # this is a global variable print 'Executing example' print 'Now this will raise a NameError '+notDefined print 'Continue execution ... ' print 'end of script' This simple script raises a NameError for 'notDefined' since that variable is not defined. I would like this script not to abort execution even if any error is raised and continue to the next line (since the user defined abortOnError=1). I initially thought this could be achieved by defining a custom exceptionhook, but that did not solve my problem. Thanks for any help, -satya Kent Johnson wrote: >Sure. Is this what you mean? > >Jython 2.1 on java1.4.2_03 (JIT: null) >Type "copyright", "credits" or "license" for more information. > > >>>>def raiser(): >>>> >>>> >... raise NotImplementedError >... > > >>>>def catcher(): >>>> >>>> >... try: >... raiser() >... except: >... if exception_aborts: >... print 'propagating exception' >... raise >... else: >... print 'logging exception' >... import traceback >... traceback.print_exc() >... > > >>>>exception_aborts=1 >>>>catcher() >>>> >>>> >propagating exception >Traceback (innermost last): > File "<console>", line 1, in ? > File "<console>", line 7, in catcher > File "<console>", line 2, in raiser >NotImplementedError: > > >>>>exception_aborts=0 >>>>catcher() >>>> >>>> >logging exception >Traceback (most recent call last): > File "<console>", line 2, in raiser >NotImplementedError > > > >Kent > > > >>From: Satya Ghattu <sg...@be...> >>Date: 2004/03/07 Sun PM 07:31:51 EST >>To: jyt...@li... >>Subject: [Jython-users] continue script execution in case of error >> >>While running a script if an error / exception is raised, depending on a >>variable setting i would like to stop the execution of the script or >>print the error and continue with the script execution. >>Is there a way to do this? >> >>Thanks, >>-satya >> >> >> >>------------------------------------------------------- >>This SF.Net email is sponsored by: IBM Linux Tutorials >>Free Linux tutorial presented by Daniel Robbins, President and CEO of >>GenToo technologies. Learn everything from fundamentals to system >>administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click >>_______________________________________________ >>Jython-users mailing list >>Jyt...@li... >>https://lists.sourceforge.net/lists/listinfo/jython-users >> >> >> > > > >------------------------------------------------------- >This SF.Net email is sponsored by: IBM Linux Tutorials >Free Linux tutorial presented by Daniel Robbins, President and CEO of >GenToo technologies. Learn everything from fundamentals to system >administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click >_______________________________________________ >Jython-users mailing list >Jyt...@li... >https://lists.sourceforge.net/lists/listinfo/jython-users > > > |
From: Diez B. R. <de...@we...> - 2004-03-08 12:16:02
|
> This simple script raises a NameError for 'notDefined' since that > variable is not defined. I would like this script not to abort execution > even if any error is raised and continue to the next line (since the > user defined abortOnError=3D1). I initially thought this could be achieved > by defining a custom exceptionhook, but that did not solve my problem. AFAIK thats not possible - for good reasons. Its like using "on error resum= e=20 next" in VB. And thats one of its worst "features"=20 It leads to horrible bugs as wrongly or uninitialized vars produce errors i= n=20 otherwise unaffected portions of your code. So I suggest you carefully examine the portions of your code that can produ= ce=20 errors and deal with them accordingly. Regards, Diez B. Roggisch |