On 12/11/05, Fredrik Lundh <fredrik at pythonware.com> 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/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4