You can get the line number info by using Dino's code (calling sys.exc_info).  Are you concerned that the default traceback display doesn't show the line number?

At 01:44 PM 8/21/2006, Matt Beckius wrote
No 32bit.  I tried manually setting the TraceBackSupport, but still got the same result:
 
IronPython 1.0.60816 on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import IronPython
>>>
>>> IronPython.Compiler.Options.TraceBackSupport = True
>>> def Test():
...     print "test"
...     int("test")
...
>>> Test()
test
Traceback (most recent call last):
  File , line 0, in <stdin>##12
  File , line 0, in Test
ValueError: invalid integer number literal
>>>

 
On 8/21/06, Dino Viehland < [EMAIL PROTECTED]> wrote:

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: users@lists.ironpython.com
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


J. Merrill / Analytical Software Corp
_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to