I TRID poniższy kod,jak złapać błąd specyficzny pyodbc wiadomość
import pyodbc
try:
pyodbc.connect('DRIVER={%s};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s' % (driver, server, database, uid, password))
except pyodbc.Error, err:
logging.warn(err)
Format komunikatu o błędzie jest wyświetlany jest
('HY000', "[HY000] [MySQL][ODBC 5.1 Driver]Access denied for user 'root'@'192.168.2.27' (using password: YES) (1045) (SQLDriverConnect)")
Chcę otrzymywać tylko część wiadomości błędu tj
Access denied for user 'root'@'192.168.2.27'(using password: YES)
Nie wiem, czy mogę złapać błędy w szczególności, nie znaleziono sterownika, hosta itp ..
Próbowałem też łapanie błędów jak:
except pyodbc.OperationalError, err:
logging.warn(err)
except pyodbc.DataError, err:
logging.warn(err)
except pyodbc.IntegrityError, err:
logging.warn(err)
except pyodbc.ProgrammingError, err:
logging.warn(err)
except pyodbc.NotSupportedError, err:
logging.warn(err)
except pyodbc.DatabaseError, err:
logging.warn(err)
except pyodbc.Error, err:
logging.warn(err)
ale ostatni zawsze łapie błąd.
Fruthermore widziałem pyodbc.Error.message jest zawsze pusty. Jak mogę uzyskać tylko wiadomość zawierającą błąd.
Dzięki
Dzięki. Oznacza to, że muszę albo użyć Regex, jeśli to możliwe, albo pozostawić go takim, jaki jest, czyż nie :) – ashokadhikari