Я хотел бы перехватывать и регистрировать предупреждения MySQL в Python. Например, MySQL выдает предупреждение для стандартной ошибки, если вы отправляете 'DROP DATABASE IF EXISTS database_of_armaments'
, когда такой базы данных не существует. Я хотел бы поймать это и зарегистрировать его, но даже в синтаксисе try / else по-прежнему появляется предупреждение.
Синтаксис try / исключением распознает ошибки MySQL (например, отправка опечатки, подобной 'DRP DATABASE database_of_armaments'
).
Я экспериментировал с <<except.MySQLdb.Warning>>
- не повезло. Я посмотрел на модуль предупреждений, но не понимаю, как включить его в синтаксис try / else.
Если говорить конкретно, как мне заставить работать следующее (или что-то подобное).
GIVEN: база данных 'database_of_armaments' не существует.
try:
cursor.execute('DROP DATABASE IF EXISTS database_of_armaments')
except: <<WHAT DO I PUT HERE?>>
print 'There was a MySQL warning.'
<<AND what goes here if I want to get and manipulate information about the warning?>>
UPDATE:
Спасибо за комментарии. Я пробовал это, и они не работали - но я использовал класс DatabaseConnection, который я написал для соединения, и его метод runQuery () для выполнения. Когда я создал соединение и курсор вне класса, попытка / исключение Exception обнаружила «Ошибка программирования», и, кроме MySQLdb.ProgrammingError, работала так, как объявлено.
Так что теперь я должен выяснить, что не так с моей кодировкой классов.
Спасибо за вашу помощь.