Я пытаюсь перехватить mysql / sqlalchemy OperationalErrors и заменить дескриптор доступа запрещен (1045) в отличие от соединения отказано (2003)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user … (Background on this error at: http://sqlalche.me/e/e3q8)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)") (Background on this error at: http://sqlalche.me/e/e3q8)
Я просто не могу найти какую-либо документацию о том, как их разделить программно. Я погрузился в источники и подумал, что могу проверить значение err.orig.original_exception.errno, но это не так.
Редактировать: err.orig, похоже, не определен для отказа в доступе, что может быть ошибкой.
try:
engine.scalar(select([1]))
except sqlalchemy.exc.OperationalError as err:
if err_______:
print("Access Denied")
elifif err_______:
print("Connection Refused")
else:
raise
Эта проблема действительно беспокоит меня, и даже щедрость заканчивается без новостей. Я начинаю верить, что это должно быть ошибкой в sqlalchemy, но документация sqlalchemy не очень наглядна в этом отношении, и я новичок в sqlalchemy и python в целом, поэтому мне очень сложно об этом сказать. Я не смог найти поддержку ирк, куда мне идти?