Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #101065

Re: raise None

From Oscar Benjamin <oscar.j.benjamin@gmail.com>
Newsgroups comp.lang.python
Subject Re: raise None
Date 2015-12-31 16:46 +0000
Message-ID <mailman.111.1451580417.11925.python-list@python.org> (permalink)
References (3 earlier) <mailman.97.1451526250.11925.python-list@python.org> <5684aa1a$0$1602$c3e8da3$5496439d@news.astraweb.com> <mailman.107.1451564424.11925.python-list@python.org> <56854b49$0$1615$c3e8da3$5496439d@news.astraweb.com> <CAPTjJmqP69E2JXOXchpZHNnyvF=t=rwU7cA7EQFB89_iPXvmYg@mail.gmail.com>

Show all headers | View raw


On 31 Dec 2015 15:54, "Chris Angelico" <rosuav@gmail.com> wrote:
>
> On Fri, Jan 1, 2016 at 2:35 AM, Steven D'Aprano <steve@pearwood.info>
wrote:
> >> If the user
> >> can see the stack trace and work back to the point where they passed
> >> something in to your function then how does the extra level hurt?
> >
> > It hurts precisely because it is one extra level. I acknowledge that it
is
> > *only* one extra level. (I told you this was a marginal benefit.)
> >
> > If one extra level is okay, might two extra be okay? How about three?
What
> > about thirty? Where would you draw the line?
> >
>
> It becomes something to get used to when you work with a particular
> library. Several of my students have run into this with matplotlib or
> sklearn; you make a mistake with a parameter to function X, which just
> takes that as-is and passes it to function Y, which does some
> manipulation but doesn't trip the error, and then calls through to
> function Z, which notices that one parameter doesn't match another,
> and raises an exception. You get used to scrolling way up to find the
> actual cause of the error

Exactly. The critical technique is looking at the traceback and splitting
it between what's your code and what's someone else's. Hopefully you don't
need to look at steves_library.py to figure out what you did wrong. However
if you do need to look at Steve's code you're now stumped because he's
hidden the actual line that raises. All you know now is that somewhere in
_validate the raise happened. Why hide that piece of information and
complicate the general interpretation of stack traces?

Actually matplotlib is a particularly tricky case as often the arguments
you pass or stored and not accessed until later. So the traceback shows an
error in the call to show() rather than e.g. legend(). Usually I can glean
pretty quickly that e.g. the legend labels are at fault though from the
traceback though.

--
Oscar

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

raise None Steven D'Aprano <steve@pearwood.info> - 2015-12-31 11:09 +1100
  Re: raise None Paul Rubin <no.email@nospam.invalid> - 2015-12-30 16:19 -0800
  Validation in Python (was: raise None) Ben Finney <ben+python@benfinney.id.au> - 2015-12-31 11:26 +1100
  Re: raise None Chris Angelico <rosuav@gmail.com> - 2015-12-31 11:38 +1100
    Re: raise None Steven D'Aprano <steve@pearwood.info> - 2015-12-31 12:26 +1100
      Re: raise None Ben Finney <ben+python@benfinney.id.au> - 2015-12-31 12:44 +1100
        Re: raise None Steven D'Aprano <steve@pearwood.info> - 2015-12-31 15:07 +1100
          Re: raise None Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2015-12-31 12:19 +0000
            Re: raise None Steven D'Aprano <steve@pearwood.info> - 2016-01-01 02:35 +1100
              Re: raise None Chris Angelico <rosuav@gmail.com> - 2016-01-01 02:53 +1100
              Re: raise None Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2015-12-31 16:46 +0000
                Re: raise None Steven D'Aprano <steve@pearwood.info> - 2016-01-01 04:50 +1100
              Re: raise None "Martin A. Brown" <martin@linux-ip.net> - 2015-12-31 09:30 -0800
              Re: raise None Ben Finney <ben+python@benfinney.id.au> - 2016-01-01 07:18 +1100
                Re: raise None Johannes Bauer <dfnsonfsduifb@gmx.de> - 2016-01-02 12:47 +0100
              Re: raise None Chris Angelico <rosuav@gmail.com> - 2016-01-01 09:48 +1100
                Re: raise None Steven D'Aprano <steve@pearwood.info> - 2016-01-04 16:19 +1100
                Re: raise None Dan Sommers <dan@tombstonezero.net> - 2016-01-04 06:09 +0000
                Re: raise None Rustom Mody <rustompmody@gmail.com> - 2016-01-03 22:39 -0800
              Re: raise None Ben Finney <ben+python@benfinney.id.au> - 2016-01-01 10:27 +1100
                Re: raise None Marko Rauhamaa <marko@pacujo.net> - 2016-01-01 02:29 +0200
                Re: raise None Steven D'Aprano <steve@pearwood.info> - 2016-01-04 16:19 +1100
                Re: raise None Rustom Mody <rustompmody@gmail.com> - 2016-01-03 21:53 -0800
                Re: raise None Rustom Mody <rustompmody@gmail.com> - 2016-01-04 03:55 -0800
                Re: raise None Rustom Mody <rustompmody@gmail.com> - 2016-01-03 21:53 -0800
              Re: raise None Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-12-31 23:36 +0000
              Re: raise None Chris Angelico <rosuav@gmail.com> - 2016-01-01 10:39 +1100
              Re: raise None Chris Angelico <rosuav@gmail.com> - 2016-01-01 10:41 +1100
              Re: raise None Rustom Mody <rustompmody@gmail.com> - 2016-01-03 19:04 -0800
                Re: raise None Chris Angelico <rosuav@gmail.com> - 2016-01-04 14:31 +1100
                Re: raise None Steven D'Aprano <steve@pearwood.info> - 2016-01-04 14:48 +1100
                Re: raise None Chris Angelico <rosuav@gmail.com> - 2016-01-04 14:56 +1100
                Re: raise None Rustom Mody <rustompmody@gmail.com> - 2016-01-03 20:46 -0800
              Re: raise None Christian Gollwitzer <auriocus@gmx.de> - 2016-01-04 08:28 +0100
      Re: raise None Chris Angelico <rosuav@gmail.com> - 2015-12-31 13:12 +1100
      Re: raise None Cameron Simpson <cs@zip.com.au> - 2015-12-31 15:03 +1100
        Re: raise None Steven D'Aprano <steve@pearwood.info> - 2015-12-31 16:12 +1100
          Re: raise None Cameron Simpson <cs@zip.com.au> - 2015-12-31 16:45 +1100
  Re: raise None Terry Reedy <tjreedy@udel.edu> - 2015-12-30 23:00 -0500
  Re: raise None Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-12-31 15:58 +0000
  Re: raise None Johannes Bauer <dfnsonfsduifb@gmx.de> - 2015-12-31 17:17 +0100

csiph-web