Python Code Auditing Tool
Roy Smith
roy at panix.com
Wed Feb 2 11:15:42 EST 2005
In article <mailman.1759.1107360282.22381.python-list at python.org>,
System Administrator <skip at pobox.com> wrote:
>
> >> Does anybody know of a tool that can tell me all possible exceptions
> >> that might occur in each line of code? What I'm hoping to find is
> >> something like the following:
>
> Paul> That is impossible. The parameter to the raise statement is a
> Paul> class object, which can be anything.
>
>Sure, but in all but the rarest of cases the first arg to raise is a
>specific exception, probably one of the standard exceptions. In the Python
>code in the distribution (ignoring the test directory where all sorts of
>mischief is done to stress things), here are the most common words following
>"raise" where "raise" is the first word on the line:
>
> % find . -name '*.py' \
> > | egrep -v '\./test' \
> > | xargs egrep '^ *raise ' \
> > | awk '{print $3}' \
> > | sed -e 's/[(,].*//' \
> > | sort \
> > | uniq -c \
> > | sort -rn \
> > | head -15
> 246 ValueError
> 227 aetools.Error
> 216 Error
> 124 TypeError
> 101 error
> 75 RuntimeError
> 53 IOError
> 36 NotImplementedError
> 36 ImportError
> 36 EOFError
> 31 SyntaxError
> 23 KeyError
> 23 AttributeError
> 22 DistutilsPlatformError
> 21 UnicodeError
It's kind of interesting (scarry?) that in roughly 20% of the cases
nothing more specific than Error is raised.
More information about the Python-list
mailing list