On 12/11/05, Fredrik Lundh <[EMAIL PROTECTED]> wrote: > João Paulo Silva wrote: > > > >>> a = file("dir/foo") > > >>> a.close() > > >>> a.read() > > > > Traceback (most recent call last): > > File "<pyshell#28>", line 1, in -toplevel- > > a.read() > > ValueError: I/O operation on closed file > > > > Shoudn't this raise IOError? Seems more semantically correct to me. > > IOError is, as the documentation says, used "when an I/O operation fails > for an I/O related reason", while ValueError is used "when an argument has > the right type but an inappropriate value."
What /F says. IOError is something you could reasonably catch, log, and ignore (since I/O devices are known to be fallible). The ValueError (at least in this case) means there's a logic bug in your program -- you're trying to use a file that you've already closed. Very important distinction! -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com