On Fri, Sep 25, 2009 at 1:00 PM, Skipper Seabold <[email protected]>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: http://blog.ianbicking.org/2007/09/12/re-raising-exceptions/ Probably the easiest for your purpose is this: def divbyzero(): return 1/0 try: a = divbyzero() except ZeroDivisionError as err: print 'problem occurred at line X' raise err or if you want to catch any error: try: yourcode() except: print 'problem occurred at line X' raise Maybe better to use a logger instead of print, but you get the idea. Cheers, Ralf > Cheers, > Skipper > _______________________________________________ > NumPy-Discussion mailing list > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
