Steven D'Aprano <st***@REMOVE.THIS.cybersource.com.auwrote:
>Closing a file can (I believe) raise an exception. Is that documented
anywhere?
In a catch-all statement for file objects: "When a file operation fails
for an I/O-related reason, the exception IOError is raised." The fact
that close() is a file operation that might fail is revealed by "file
objects are implemented using C's stdio package" and the fact the C's
fclose() function can fail.
Is IOError the only exception it can raise?
I assume it can raise the exceptions MemoryError and KeyboardInterupt,
which just about any Python operation can raise.
>Out of curiosity, is there a simple way to demonstrate close() raising an
exception that doesn't involve messing about with disk quotas?
Something like the following should work:
f = file("/dev/null", "r")
os.close(f.fileno)
f.close()
Normally however, you can expect file method close() to fail for all
the same reasons you would expect write() to fail.
Ross Ridge
--
l/ // Ross Ridge -- The Great HTMU
[oo][oo]
rr****@csclub.uwaterloo.ca
-()-/()/
http://www.csclub.uwaterloo.ca/~rridge/
db //