En Mon, 21 Sep 2009 06:17:20 -0300, daved170 <daved...@gmail.com> escribió:

I need help with exceptions raising.
My goal is to print at the outer functions all the errors including
the most inner one.

The default exception report contains a lot of information, you don't have to do anything special.

def foo1(self):
   try:
        foo2()
   except ? :
         print "outer Err at foo1" + ??

def foo2(self):
   try:
        error occured
   except ? :
         raise "inner Err at foo2"

The bare bones structure is:

def foo1():
  foo2()

def foo2():
  undefinedname()

foo1()

and you get this error:

D:\temp>python test638580.py
Traceback (most recent call last):
  File "test638580.py", line 7, in <module>
    foo1()
  File "test638580.py", line 2, in foo1
    foo2()
  File "test638580.py", line 5, in foo2
    undefinedname()
NameError: global name 'undefinedname' is not defined


I would like the print to be : outer Err at foo1 , inner Err at foo1

It already includes that info.

  File "test638580.py", line 2, in foo1
    foo2()

means that in line 2 of test638580.py, inside function foo1, there was a call to foo2.

  File "test638580.py", line 5, in foo2
    undefinedname()

and that means that foo2 tried to call undefinedname.

  NameError: global name 'undefinedname' is not defined

And that's the actual error.

Do you want it to be more nicely formatted? Do you want to include additional information? Or what?

--
Gabriel Genellina

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

Reply via email to