[IronPython] Getting a line number of error (RC2)

J. Merrill jvm_cop at spamcop.net
Mon Aug 21 23:46:07 CEST 2006


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 <<mailto:dinov at exchange.microsoft.com>dinov at exchange.microsoft.com> 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: <mailto:users-bounces at lists.ironpython.com>users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Matt Beckius
>Sent: Monday, August 21, 2006 7:18 AM
>To: <mailto:users at lists.ironpython.com>users at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20060821/ff63ae17/attachment.html>


More information about the Ironpython-users mailing list