Exkurs - Fehlerbehandlung
Wenn man programmiert, funktioniert nicht immer alles sofort; das hast du sicher auch schon festgestellt.
Der folgende Programmausschnitt enthält einen kleinen Fehler, der vielleicht auch nicht direkt offensichtlich ist:
cursor = con.cursor()
SQLBefehl = '''
   SELECT Name, Einohner 
     FROM kontinent
'''
cursor.execute(SQLBefehl)
row=cursor.fetchone()
while (row!=None):
  print(row[0], row[1])
  row = cursor.fetchone ()
Die Ausführung des Programms führt zu einer Fehlermeldung:
 
Die rote Schrift zeigt schon an, dass das Programm direkt abgebrochen ist und in der letzten Zeile lässt sich auch der Grund ablesen: Beim Attribut "Einwohner" wurde im SQL-Befehl ein Buchstabe vergessen.
SQL-Fehler abfangen
Der MySQL-Connector verwendet die Ausnahmebehandlung (Exceptions) von Python, um Fehler an das aufrufende Programm zu melden. Dieses kann dann diese Fehler abfangen und behandeln. Ein einfaches Beispiel siehst du hier:
cursor = con.cursor()
SQLBefehl = '''
   SELECT Name, Einohner 
     FROM kontinent
'''
try:
  cursor.execute(SQLBefehl)
  # Abrufen der Ergebnisse
  [...]
except mysql.connector.Error as err:
  print("Fehler bei der SQL-Ausführung: %s" % (err))
Bei der Verwendung von SQLite muss in Zeile [13] der 
richtige Bibliotheksname stehen, also 
except sqlite3.Error as err:
Die Ausführung des SQL-Befehls wird in einen eigenen try/except-Block gesetzt. 
Bei einem Fehler innerhalb des try-Blocks wird in den "passenden" except-Block 
gesprungen. Mit dem Befehl except mysql.connector.Error as err wird ganz konkret auf 
Fehler des MySQL-Connnectors eingegangen. Die konkrete Fehlermeldung ist im Objekt err 
ablesbar und wird hier direkt dem Benutzer über ein print angezeigt. Das Programm läuft danach 
bis zum Ende weiter.
 
