From e68e597b6a55be7df61fe29bb0c372ff3e6a1692 Mon Sep 17 00:00:00 2001 From: David Rose Date: Mon, 1 Mar 2010 19:06:12 +0000 Subject: [PATCH] more verbose error messages --- direct/src/stdpy/file.py | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/direct/src/stdpy/file.py b/direct/src/stdpy/file.py index 2a32b42548..6ba8882dc2 100644 --- a/direct/src/stdpy/file.py +++ b/direct/src/stdpy/file.py @@ -46,7 +46,8 @@ class file: # We can also "open" a VirtualFile object for reading. self.__stream = filename.openReadFile(autoUnwrap) if not self.__stream: - raise IOError + message = 'Could not read virtual file %s' % (repr(filename)) + raise IOError, message self.__needsVfsClose = True readMode = True @@ -92,35 +93,41 @@ class file: if mode == 'w': self.__stream = pm.OFileStream() if not filename.openWrite(self.__stream, True): - raise IOError + message = 'Could not open %s for writing' % (filename) + raise IOError, message writeMode = True elif mode == 'a': self.__stream = pm.OFileStream() if not filename.openAppend(self.__stream): - raise IOError + message = 'Could not open %s for writing' % (filename) + raise IOError, message writeMode = True elif mode == 'w+': self.__stream = pm.FileStream() if not filename.openReadWrite(self.__stream, True): - raise IOError + message = 'Could not open %s for writing' % (filename) + raise IOError, message readMode = True writeMode = True elif mode == 'a+': self.__stream = pm.FileStream() if not filename.openReadAppend(self.__stream): - raise IOError + message = 'Could not open %s for writing' % (filename) + raise IOError, message readMode = True writeMode = True elif mode == 'r+': self.__stream = pm.FileStream() if not filename.exists(): - raise IOError + message = 'No such file: %s' % (filename) + raise IOError, message if not filename.openReadWrite(self.__stream, False): - raise IOError + message = 'Could not open %s for writing' % (filename) + raise IOError, message readMode = True writeMode = True @@ -130,7 +137,11 @@ class file: self.__stream = _vfs.openReadFile(filename, autoUnwrap) 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 readMode = True @@ -170,7 +181,8 @@ class file: # The stream is not even open at all. raise ValueError # The stream is open only in write mode. - raise IOError + message = 'Attempt to read from write-only stream' + raise IOError, message self.__lastWrite = False if size >= 0: @@ -188,7 +200,8 @@ class file: # The stream is not even open at all. raise ValueError # The stream is open only in write mode. - raise IOError + message = 'Attempt to read from write-only stream' + raise IOError, message self.__lastWrite = False return self.__reader.readline() @@ -229,7 +242,8 @@ class file: # The stream is not even open at all. raise ValueError # 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.__lastWrite = True @@ -239,7 +253,8 @@ class file: # The stream is not even open at all. raise ValueError # 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: self.__writer.appendData(line) self.__lastWrite = True