Les avertissements ne sont que cela :des avertissements. Ils sont signalés (généralement) à stderr, mais rien d'autre n'est fait. Vous ne pouvez pas les attraper comme des exceptions car elles ne sont pas déclenchées.
Vous pouvez cependant configurer ce qu'il faut faire avec des avertissements, et désactivez-les ou transformez-les en exceptions, en utilisant les warnings
module. Par exemple, warnings.filterwarnings('error', category=MySQLdb.Warning)
pour activer les MySQLdb.Warning warnings
en exceptions (auquel cas ils seraient interceptés en utilisant votre try/except) ou 'ignore'
pour ne pas les montrer du tout. Vous pouvez (et devriez probablement) avoir des filtres plus fins que simplement la catégorie.