those darn exceptions

Ben Finney ben+python at benfinney.id.au
Fri Jun 24 20:25:35 EDT 2011


Chris Torek <nospam at torek.net> writes:

> But again, this is why I would like to have the ability to use some
> sort of automated tool, where one can point at any given line of
> code and ask: "what exceptions do you, my faithful tool, believe
> can be raised as a consequence of this line of code?"

“Why, any exception at all”.

> If you point it at the call to main():
>
>     if __name__ == '__main__':
>         main()
>
> then you are likely to get a useless answer ("why, any exception
> at all"); but if you point it at a call to os.read(), then you get
> one that is useful -- and tells you (or me) about the OverflowError.

No. The answer is *still* “why, any exception at all”. The name
‘os.read’ could be re-bound at run-time to any object at all, so a code
checker that you “point at any given line of code” can't know what the
name will be bound to when that line gets executed.

> If you point it at a call to len(x), then the tool tells you what
> it knows about type(x) and x.__len__.

Which information, before the code is executed, isn't determined.

-- 
 \           “The cost of education is trivial compared to the cost of |
  `\                                     ignorance.” —Thomas Jefferson |
_o__)                                                                  |
Ben Finney



More information about the Python-list mailing list