Immer Fehlermeldungen aus psycopg2 Ausnahmen

Dies ist mein erstes Projekt mit psycopg2 ausgiebig. Ich versuche einen Weg zu finden, extrahieren Sie die psql-Fehlermeldung, wenn ein Verbindungsversuch fehlschlägt. Getestet hab ich den code unten funktioniert, wenn alle Variablen richtig gesetzt sind, aber wenn ein Fehler Auftritt (z.B. Benutzer wählt eine Datenbank, die nicht vorhanden ist), Python geben mir die folgenden:

I am unable to connect to the database
None
Traceback (most recent call last):
  File "./duplicate_finder.py", line 163, in <module>
    main(sys.argv[1:])
  File "./duplicate_finder.py", line 142, in main
    print e.diag.message_detail
AttributeError: 'OperationalError' object has no attribute 'diag'

Gibt es eine einfache, catch-all-Methode zu fangen, was auch immer Fehlermeldung psql erzeugt, wenn eine Verbindung fehlschlägt, oder muss ich schreiben, außer Blöcken für mehrere psycopg2 Ausnahmen?

Auszug aus meinem Skript:

import sys, getopt, os, time, csv, psycopg2

    ...
    ...

    conn_string = "host=" + dbhost + " dbname=" + database + " user=" + dbuser + " password=" + dbpass
    try:
        conn = psycopg2.connect(conn_string)
    except psycopg2.Error as e:
        print "Unable to connect!"
        print e.pgerror
        print e.diag.message_detail
        sys.exit(1)
    else:
        print "Connected!"
        cur = conn.cursor()
        cur.execute("SELECT id, lastname, firstname, location FROM test ORDER BY ctl_upd_dttm DESC;")
        print cur.fetchone()
        ...
        conn.close()
InformationsquelleAutor sirjames2004 | 2014-06-20
Schreibe einen Kommentar