[Numpy-discussion] Question about improving genfromtxt errors

Ralf Gommers ralf.gommers@googlemail....
Fri Sep 25 13:00:25 CDT 2009

On Fri, Sep 25, 2009 at 1:00 PM, Skipper Seabold <jsseabold@gmail.com>wrote:

> There have been some recent attempts to improve the error reporting in
> genfromtxt <http://projects.scipy.org/numpy/ticket/1212>, which is
> great, because hunting down the problems reading in big and messy
> files is not fun.
> I am working on a patch that keeps up with the line number and column
> number of where you are in parsing the file, so that this can be
> reported in the error.  Is there a way to catch a raised error and add
> to it?
> For instance, I have a problem in my file which leads to this error
> being raised from np.lib._iotools.StringCoverter.upgrade
> ValueError: Converter is locked and cannot be upgraded
> I added this into np.lib.io.genfromtxt around line 995.
> linenum = 0
> [...]
> if dtype is None:
>            try:
>                colnum = 0
>                for (converter, item) in zip(converters, values):
>                    converter.upgrade(item)
>                    colnum += 1
>            except:
>                raise ValueError, "I don't report the error from
> _iotools.StringConverter.upgrade, but I do know that there is a
> problem trying to convert a value at line %s and column %s" %
> (linenum,colnum)
> [...]
> linenum += 1
> I'd like to add line and column number information to original error
> from _iotools.  Any suggestions?

There is no good way to edit the message of the original exception instance,
as explained here:

Probably the easiest for your purpose is this:

def divbyzero():
    return 1/0

    a = divbyzero()
except ZeroDivisionError as err:
    print 'problem occurred at line X'
    raise err

or if you want to catch any error:

    print 'problem occurred at line X'

Maybe better to use a logger instead of print, but you get the idea.


> Cheers,
> Skipper
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20090925/5ad3a666/attachment.html 

More information about the NumPy-Discussion mailing list