Are you running on a 64-bit machine w/ a 64-bit runtime?  By default we disable trackback support on 64-bit machines (we’ve hit a unique bug w/ exception handling there), but it is enabled on 32-bit machines and should work there.

 

If I do:

 

import sys

def test2():

    try: test()

    except ValueError, ex:

        global e

        import sys

        e = sys.exc_info()

 

test2()

e

 

>>> e[2].tb_lineno

2

>>> e[2].tb_frame.f_code.co_filename

'<stdin>'

 

You can enable on 64-bit:

 

import IronPython

IronPython.Compiler.Options.TraceBackSupport = True

 

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt Beckius
Sent: Monday, August 21, 2006 7:18 AM
To: [email protected]
Subject: [IronPython] Getting a line number of error (RC2)

 

Trying to get the line number of an error.  CPython produces:

 

Python 2.4.2 (#67, Sep 28 2005, 12:41:11)
Type "help", "copyright", "credits" or "li
>>> def test():
...     print "hi"
...     int("hi")
...
>>> test()
hi
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "<stdin>", line 3, in test
ValueError: invalid literal for int(): hi

 

 

But IP RC2 produces:

 

IronPython 1.0.60816 on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> def test():
...     print "hi"
...     int("hi")
...
>>> test()
hi
Traceback (most recent call last):
  File , line 0, in <stdin>##5
  File , line 0, in test
ValueError: invalid integer number literal

 

How do I get the line number of this runtime error? 

 

MattB

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

Reply via email to