--- forgetSQL.py	2013-07-16 22:47:17.000000000 +0200
+++ forgetSQL.modif.py	2013-07-17 23:44:35.000000000 +0200
@@ -194,7 +194,7 @@
       import database
       return database.cursor()
     except:  
-      raise "cursor method undefined, no database connection could be made"
+      raise Exception("cursor method undefined, no database connection could be made")
   cursor = classmethod(cursor)  
 
   # a reference to the database module object used, ie. 
@@ -253,13 +253,15 @@
           self.__dict__[key] = value
           id = id[1:] # rest, go revursive
       except IndexError:
-        raise 'Not enough id fields, required: %s' % len(self._sqlPrimary)
+        _msg = 'Not enough id fields, required: %s' % len(self._sqlPrimary)
+        raise Exception(_msg)
     elif len(self._sqlPrimary) <= 1:
       # It's a simple value
       key = self._sqlPrimary[0]
       self.__dict__[key] = id
     else:
-      raise 'Not enough id fields, required: %s' % len(self._sqlPrimary)
+      _msg = 'Not enough id fields, required: %s' % len(self._sqlPrimary)
+      raise Exception(_msg)
     self._new = False  
       
   def _getID(self):
@@ -275,7 +277,8 @@
         try:
           (value,) = value._getID()
         except:
-          raise "Unsupported: Part %s of %s primary key is a reference to %s, with multiple-primary-key %s " % (key, self.__class__, value.__class__, value)
+          _msg = "Unsupported: Part %s of %s primary key is a reference to %s, with multiple-primary-key %s " % (key, self.__class__, value.__class__, value)
+          raise Exception(_msg)
       id.append(value)
     return id
 
@@ -468,17 +471,19 @@
             sqlfields.append(sqlfield)
       if not fields:
         # dirrrrrty!
-        raise """ERROR: No fields defined, cannot create SQL. 
+        _msg = """ERROR: No fields defined, cannot create SQL. 
 Maybe sqlPrimary is invalid?
 Fields asked: %s
 My fields: %s""" % (selectfields, cls._sqlFields)
+        raise Exception(_msg)
         
       sql = "SELECT\n  "
       sql += ', '.join(sqlfields)  
       sql += "\nFROM\n  "
       tables = cls._tables.keys()
       if not tables:
-        raise "REALITY ERROR: No tables defined"
+        _msg = "REALITY ERROR: No tables defined"
+        raise Exception(_msg)
       sql += ', '.join(tables)
       tempWhere = ["%s=%s" % linkPair for linkPair in cls._sqlLinks]
       # this MUST be here.
@@ -549,7 +554,8 @@
         sql += ' AND\n  '.join(tempWhere) 
       return (sql, )      
     else:
-      raise "Unknown operation", operation
+      _msg = "Unknown operation", operation
+      raise Exception(_msg)
       
   _prepareSQL = classmethod(_prepareSQL)
   
@@ -565,7 +571,8 @@
     if not name:
       # Assume it's tablename_primarykey_seq
       if len(cls._sqlPrimary) <> 1:
-        raise "Could not guess sequence name for multi-primary-key"
+        _msg = "Could not guess sequence name for multi-primary-key"
+        raise Exception(_msg)
       primary = cls._sqlPrimary[0]
       name = '%s_%s_seq' % (cls._sqlTable, primary.replace('.','_'))
       # Don't have . as a tablename or column name! =)
@@ -659,7 +666,8 @@
         try:  
           (value,) = value._getID()
         except:
-          raise "Unsupported: Can't reference multiple-primary-key: %s" % value
+          _msg = "Unsupported: Can't reference multiple-primary-key: %s" % value
+          raise Exception(_msg)
       values.append(value)  
     cursor = self.cursor()
     cursor.execute(sql, values)
@@ -715,7 +723,8 @@
       try:
         idPositions = [fields.index(key) for key in cls._sqlPrimary]
       except ValueError:
-        raise "Bad sqlPrimary, should be a list or tupple: %s" % cls._sqlPrimary
+        _msg = "Bad sqlPrimary, should be a list or tupple: %s" % cls._sqlPrimary
+        raise Exception(_msg)
       ids = [row[pos] for pos in idPositions]
       if useObject:
         result = useObject
@@ -801,7 +810,8 @@
           field = i_field
           break # first one found is ok :=)
     if not field:
-      raise "No field found, check forgetter's _userClasses"
+      _msg = "No field found, check forgetter's _userClasses"
+      raise Exception(_msg)
     sqlname = forgetter._sqlFields[field]  
     myID = self._getID()[0] # assuming single-primary !
     
@@ -849,7 +859,8 @@
         try:  
           (value,) = value._getID()
         except:
-          raise "Can't reference multiple-primary-key: %s" % value
+          _msg = "Can't reference multiple-primary-key: %s" % value
+          raise Exception(_msg)
       values.append(value)  
     cursor = self.cursor()
     cursor.execute(sql, values)
@@ -857,7 +868,8 @@
 
     if not self._validID():
       if not len(self._getID()) == 1:
-         raise "Can't retrieve auto-inserted ID for multiple-primary-key"
+         _msg = "Can't retrieve auto-inserted ID for multiple-primary-key"
+         raise Exception(_msg)
       # Here's the mysql magic to get the new ID
       self._setID(cursor.insert_id())
     cursor.close()
