Martin Maly wrote: > When you catch the exception after g.Call(...), do you also examine the > exception's CallStack?
No, I did not! And thanks a lot, it indeed contains all the info I need: at script.hop$f1() in ...\script.py:line 10 at IronPython.Objects.Function0.Call() at IronPython.Objects.Ops.Call(Object func) at script.init_session$f0(Object busSettings, Object fileNamePrefix)...\script.py:l ine 7 so that with a little processing, I can make my it easy to read!! Thanks a lot for the help. Stan. > > I tried simpler variation on your code: > > try { > engine.Import("x"); > Function f = engine.Evaluate("x.f") as Function; > f.Call(); > } catch (Exception x) { > output.write(x.ToString()); > output.write(x.StackTrace); > } > > Where x.py is: > > def f(): > return 1/0 > > And I got following output: > > x.ToString(): > Attempted to divide by zero. > > x.StackTrace: > at IronPython.Objects.IntOps.Divide(Int32 x, Int32 y) in > d:\Ip\IronPython\Src\IronPython\Objects\IntOps.cs:line 169 > at IronPython.Objects.IntOps.FloorDivide(Int32 x, Object other) in > d:\Ip\IronPython\Src\IronPython\Objects\IntOps.cs:line 382 > at IronPython.Objects.IntOps.Divide(Int32 x, Object other) in > d:\Ip\IronPython\Src\IronPython\Objects\IntOps.cs:line 164 > at IronPython.Objects.Ops.Divide(Object x, Object y) in > d:\Ip\IronPython\Src\IronPython\Objects\Ops.cs:line 866 > at x.f$f0() in D:\Ip\IronPython\Presentations\Editor\bin\Debug\x.py:line 2 > at IronPython.Objects.Function0.Call() in > d:\Ip\IronPython\Src\IronPython\Objects\Function.cs:line 50 > at Editor.Editor.RunScript(Object sender, EventArgs e) in > D:\Ip\IronPython\Presentations\Editor\Editor.cs:line 45 > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stanislas Pinte > Sent: Wednesday, December 14, 2005 1:17 AM > To: users@lists.ironpython.com > Subject: [IronPython] Stack Traces in IronPython 0.96 do not contain python > stack trace > > hello, > > Has anyone an idea of the following: > > I have a script: > > >>#ScriptingLoopTest python code >> >>def init_session(settings, fileNamePrefix): >> pass >> >>def handle_message(message): >> passmmm > > > and I use IronPython 0.96 as embedded scripting engine. > > private PythonEngine engine = new PythonEngine(); > engine.Import(moduleName); > f = engine.Evaluate(moduleName + ".init_session") as Function; > g = engine.Evaluate(moduleName + ".handle_message") as Function; > > when I do g.Call(...), IP detects that the passmm symbol is not > defined, and throws a PythonException. > > This exception only contains that: > > "name 'passmmm' not defined". > > It doesn't contain the line number in the imported script, nor the > trace, whereas Python 2.4 gives the following: > > Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on > win32 > Type "help", "copyright", "credits" or "license" for more information. > >>>>def handle_message(message): > > . passmmm > . > >>>>handle_message(3) > > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "<stdin>", line 2, in handle_message > NameError: global name 'passmmm' is not defined > > > It is very important for me to be able to give the user that kind of > feedback...is there a way to do it? > > Thanks a lot, > > Stan. > > > _______________________________________________ > users mailing list > users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > _______________________________________________ > users mailing list > users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ users mailing list users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com