Tout le temps dans Django je vois DoesNotExist
étant soulevé comme dans db.models.fields.related.py
. Pas ObjectDoesNotExist
qui est défini dans django.core.exceptions
, mais juste DoesNotExist
. Où cette classe d'exception est-elle définie ou est-ce que je ne comprends pas complètement les exceptions? J'ai vérifié que ce n'est pas dans les exceptions (du moins pas que je sache). Je suis confus évidemment.Django: D'où vient "DoesNotExist"?
Remarque: Il est également disponible gratuitement, en tant qu'attribut d'une instance de sous-classe de modèle, comme `self.someforeignkey.DoesNotExist. Comment est-ce possible?
Merci Alex. Je ne savais pas que Django avait cette méthode add_to_class(). J'ai fait une recherche documentaire à Komodo pour la 'classe DoesNotExist' et je me suis cogné la tête contre le mur. – orokusaki
À moins qu'il soit nécessaire de désambiguïser quelle classe est la source de 'DoesNotExist' (très rare dans mon expérience), il est plus sûr d'utiliser' ObjectDoesNotExist'. – Marcin
Je pense que dans presque toutes les situations, il est 100% préférable de savoir quelle exception a été soulevée. Une couverture 'excepté ObjectDoesNotExist:' n'est pas meilleure que 'excepté:'. Puisque vous ne savez pas ce qui a causé l'exception, votre programme agira potentiellement sur de mauvaises informations. – orokusaki