On 21-02-2010 03:51, Ryan Kelly wrote:
On Sun, 2010-02-21 at 13:17 +1100, Lie Ryan wrote:
On 02/21/10 12:02, Stef Mientki wrote:
On 21-02-2010 01:21, Lie Ryan wrote:
On Sun, Feb 21, 2010 at 12:52 AM, Stef Mientki
<stef.mien...@gmail.com> wrote:
hello,
I would like my program to continue on the next line after an uncaught
exception,
is that possible ?
thanks
Stef Mientki
That reminds me of VB's "On Error Resume Next"
I think that's what I'm after ...
A much better approach is to use callbacks, the callbacks determines
whether to raise an exception or continue execution:
def handler(e):
if datetime.datetime.now()>= datetime.datetime(2012, 12, 21):
raise Exception('The world has ended')
# else: ignore, it's fine
def add_ten_error_if_zero(args, handler):
if args == 0:
handler(args)
return args + 10
print add_ten_error_if_zero(0, handler)
print add_ten_error_if_zero(10, handler)
print add_ten_error_if_zero(0, lambda e: None) # always succeeds
Or if you don't like having to explicitly manage callbacks, you can try
the "withrestart" module:
http://pypi.python.org/pypi/withrestart/
It tries to pinch some of the good ideas from Common Lisp's
error-handling system.
from withrestart import *
def add_ten_error_if_zero(n):
# This gives calling code the option to ignore
# the error, or raise a different one.
with restarts(skip,raise_error):
if n == 0:
raise ValueError
return n + 10
# This will raise ValueError
print add_ten_error_if_zero(0)
# This will print 10
with Handler(ValueError,"skip"):
print add_ten_error_if_zero(0)
# This will exit the python interpreter
with Handler(ValueError,"raise_error",SystemExit):
print add_ten_error_if_zero(0)
Cheers,
Ryan
thanks Ryan (and others),
your description of withstart was very informative,
and I think I understand why it's impossible what I want
(something like madExcept for Delphi / C / C++, see
*http://www.madshi.net/madExceptDescription.htm )
*
It are not the bugs that you can predict / expect to catch,
but the uncaught bugs.
So made some first steps,
and this seems to be sufficient for now,
if you're interested, look here,
http://mientki.ruhosting.nl/data_www/pylab_works/pw_bug_reporter.html
cheers,
Stef
--
http://mail.python.org/mailman/listinfo/python-list