New submission from David M. Beazley <[email protected]>:
The ConfigParser module defines a variety of custom exceptions, many of
which take more than one argument (e.g., InterpolationError,
NoOptionError, etc.). However, none of these exceptions properly set
the .args attribute. For example, shouldn't NoOptionError be defined
as follows:
class NoOptionError(Error):
def __init__(self,option,section):
Error.__init__(self,"No option %r in section: %r" %
(option,section))
self.option = option
self.section = section
self.args = (option,section) #!! Added this line
This is kind of a minor point, but the missing args means that these
exceptions don't work properly with programs that need to do fancy kinds
of exception processing (i.e., catching errors and reraising them in a
different context or process).
I can't speak for Python 3.0, but it's my understanding that .args
should always be set to the exception arguments.
Don't ask how I came across this---it was the source of a really bizarre
bug in something I was playing around with.
----------
components: Library (Lib)
messages: 77983
nosy: beazley
severity: normal
status: open
title: Exceptions in ConfigParser don't set .args
type: behavior
versions: Python 2.1.1, Python 2.1.2, Python 2.2, Python 2.2.1, Python 2.2.2,
Python 2.2.3, Python 2.3, Python 2.4, Python 2.5, Python 2.5.3, Python 2.6,
Python 2.7, Python 3.0, Python 3.1
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue4686>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com