more verbose error messages

This commit is contained in:
David Rose 2010-03-01 19:06:12 +00:00
parent 6db963dfa6
commit e68e597b6a

View File

@ -46,7 +46,8 @@ class file:
# We can also "open" a VirtualFile object for reading. # We can also "open" a VirtualFile object for reading.
self.__stream = filename.openReadFile(autoUnwrap) self.__stream = filename.openReadFile(autoUnwrap)
if not self.__stream: if not self.__stream:
raise IOError message = 'Could not read virtual file %s' % (repr(filename))
raise IOError, message
self.__needsVfsClose = True self.__needsVfsClose = True
readMode = True readMode = True
@ -92,35 +93,41 @@ class file:
if mode == 'w': if mode == 'w':
self.__stream = pm.OFileStream() self.__stream = pm.OFileStream()
if not filename.openWrite(self.__stream, True): if not filename.openWrite(self.__stream, True):
raise IOError message = 'Could not open %s for writing' % (filename)
raise IOError, message
writeMode = True writeMode = True
elif mode == 'a': elif mode == 'a':
self.__stream = pm.OFileStream() self.__stream = pm.OFileStream()
if not filename.openAppend(self.__stream): if not filename.openAppend(self.__stream):
raise IOError message = 'Could not open %s for writing' % (filename)
raise IOError, message
writeMode = True writeMode = True
elif mode == 'w+': elif mode == 'w+':
self.__stream = pm.FileStream() self.__stream = pm.FileStream()
if not filename.openReadWrite(self.__stream, True): if not filename.openReadWrite(self.__stream, True):
raise IOError message = 'Could not open %s for writing' % (filename)
raise IOError, message
readMode = True readMode = True
writeMode = True writeMode = True
elif mode == 'a+': elif mode == 'a+':
self.__stream = pm.FileStream() self.__stream = pm.FileStream()
if not filename.openReadAppend(self.__stream): if not filename.openReadAppend(self.__stream):
raise IOError message = 'Could not open %s for writing' % (filename)
raise IOError, message
readMode = True readMode = True
writeMode = True writeMode = True
elif mode == 'r+': elif mode == 'r+':
self.__stream = pm.FileStream() self.__stream = pm.FileStream()
if not filename.exists(): if not filename.exists():
raise IOError message = 'No such file: %s' % (filename)
raise IOError, message
if not filename.openReadWrite(self.__stream, False): if not filename.openReadWrite(self.__stream, False):
raise IOError message = 'Could not open %s for writing' % (filename)
raise IOError, message
readMode = True readMode = True
writeMode = True writeMode = True
@ -130,7 +137,11 @@ class file:
self.__stream = _vfs.openReadFile(filename, autoUnwrap) self.__stream = _vfs.openReadFile(filename, autoUnwrap)
if not self.__stream: if not self.__stream:
raise IOError if not filename.exists():
message = 'No such file: %s' % (filename)
else:
message = 'Could not open %s for reading' % (filename)
raise IOError, message
self.__needsVfsClose = True self.__needsVfsClose = True
readMode = True readMode = True
@ -170,7 +181,8 @@ class file:
# The stream is not even open at all. # The stream is not even open at all.
raise ValueError raise ValueError
# The stream is open only in write mode. # The stream is open only in write mode.
raise IOError message = 'Attempt to read from write-only stream'
raise IOError, message
self.__lastWrite = False self.__lastWrite = False
if size >= 0: if size >= 0:
@ -188,7 +200,8 @@ class file:
# The stream is not even open at all. # The stream is not even open at all.
raise ValueError raise ValueError
# The stream is open only in write mode. # The stream is open only in write mode.
raise IOError message = 'Attempt to read from write-only stream'
raise IOError, message
self.__lastWrite = False self.__lastWrite = False
return self.__reader.readline() return self.__reader.readline()
@ -229,7 +242,8 @@ class file:
# The stream is not even open at all. # The stream is not even open at all.
raise ValueError raise ValueError
# The stream is open only in read mode. # The stream is open only in read mode.
raise IOError message = 'Attempt to write to read-only stream'
raise IOError, message
self.__writer.appendData(str) self.__writer.appendData(str)
self.__lastWrite = True self.__lastWrite = True
@ -239,7 +253,8 @@ class file:
# The stream is not even open at all. # The stream is not even open at all.
raise ValueError raise ValueError
# The stream is open only in read mode. # The stream is open only in read mode.
raise IOError message = 'Attempt to write to read-only stream'
raise IOError, message
for line in lines: for line in lines:
self.__writer.appendData(line) self.__writer.appendData(line)
self.__lastWrite = True self.__lastWrite = True