The fact that you can access this via exc_value.StackTrace is actually a bug - 
and one that's already fixed internally for our next release.   So for now 
using the clsException field is the better way to go.  

Another alternative here is that you can also explicitly catch a CLS exception. 
 Eg:

import System

try:
        ...
except System.Exception, e:
        ...

and we'll actually give you an instance of a CLR exception (with StackTrace) 
rather than a Python Exception class.  The underlying theme here is that we 
give you what you ask for>

And finally the BEST mechanism is obviously sys.exc_traceback / 
sys.exc_info()[2] for compatibility with CPython.  But unfortunately we just 
haven't implemented this yet.  We have a bug for 1.0 on this so it should be 
fixed during one of the upcoming betas.


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of J. de Hooge
Sent: Thursday, February 09, 2006 6:34 AM
To: 'Discussion of IronPython'
Subject: Re: [IronPython] Exception.StackTrace gone?

Works like a charm. Thanks!

Jacques

-----Oorspronkelijk bericht-----
Van: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Namens Jonathan Jacobs
Verzonden: Thursday, February 09, 2006 1:19 PM
Aan: Discussion of IronPython
Onderwerp: Re: [IronPython] Exception.StackTrace gone?

J. de Hooge wrote:
> Does anyone know why it fails, and, more important, how I still can 
> print a stack trace?

You could either use sys.exc_value or .clsException.StackTrace on 
Exception objects. I don't know if the latter is a reliable source.

 >>> import sys
 >>> try:
..   raise NotImplementedError
.. except Exception, e:
..   print e.clsException.StackTrace
..   print '*****'
..   print sys.exc_value.StackTrace
..
    at IronPython.Runtime.Ops.Raise(Object type, Object value, Object 
traceback)
    at input##25(Frame )
*****
    at IronPython.Runtime.Ops.Raise(Object type, Object value, Object 
traceback)
    at input##25(Frame )
 >>>


Hope this helps.
-- 
Jonathan

When you meet a master swordsman,
show him your sword.
When you meet a man who is not a poet,
do not show him your poem.
                 -- Rinzai, ninth century Zen master
_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to