@@ -528,20 +528,22 @@ } #endif - (void)close { - if (_handle != OF_INVALID_FILE_HANDLE) - closeHandle(_handle); + if (_handle == OF_INVALID_FILE_HANDLE) + @throw [OFNotOpenException exceptionWithObject: self]; + closeHandle(_handle); _handle = OF_INVALID_FILE_HANDLE; [super close]; } - (void)dealloc { - [self close]; + if (_handle != OF_INVALID_FILE_HANDLE) + [self close]; [super dealloc]; } @end