Execption "ignored"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
JanDMC
User
Beiträge: 95
Registriert: Donnerstag 23. September 2004, 19:35
Kontaktdaten:

Execption "ignored"

Beitragvon JanDMC » Montag 18. Dezember 2006, 23:06

Moin Leute..
Ich hab folgende Fehlermeldung

Code: Alles auswählen

Exception exceptions.AttributeError: "ID3 instance has no attribute 'modified'"
in <bound method ID3.__del__ of <ID3.ID3 instance at 0x01854B48>> ignored


Ich benutze ein Modul namens ID3.. Ich möchte allgemein wissen das die Fehlermeldung heißt und wann sowas auftreten kann. Wenn man das verallgemeinern kann. Hab sowas noch nie gehabt..

mfg Jan
joa nää python is toll :D
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Dienstag 19. Dezember 2006, 11:16

Moin Jan,

ich nehme mal an es handelt sich um das ID3-py-Modul von sourceforge: id3-py.sourceforge.net/ ? (Bei einem Post zu obskuren Modulen kann es wirklich helfen mit einem Link auf das Modul zu dienen: Nicht jeder kennt und hat alle Module. :wink: )

Aber was die Fehlermeldung heißt ist eigentlich klar: Du greifst auf ein Attribute von ID3 zurück, daß es nicht gibt - aber eigentlich, wenn ich mir den Code so anschaue, sollte es ihn geben. Insofern vermute ich einen Bug des Moduls, habe aber auch nicht die Nerven mich jetzt damit auseinanderzusetzen, zumal die letzten Änderungen 2002 waren und ich noch nicht einmal weiß, ob ich zum richtigen Modul rate. Gibt es nichts Aktuelleres oder besser Gepflegtes, was dieselbe Leistung erbringt?

Gruß,
Christian
JanDMC
User
Beiträge: 95
Registriert: Donnerstag 23. September 2004, 19:35
Kontaktdaten:

Beitragvon JanDMC » Dienstag 19. Dezember 2006, 12:51

Moin..

zum Modul: Das war der erste treffer bei google und was ich mir vorstellte ging damit auch ziemlich schnell deswegen hab ich nicht weiter gesucht. Das problem taucht auf wenn ich einen "try - except" block habe und in dem try block eine exception geworfen wird, diese will ich aber nicht weiter beachten deswegen "except:pass". Ich verstehe bloß nicht warum ich drarauf hingewiesen werde, das eine exeption geworfen wurde obwohl sie im try block steht...


mfg

ps: dann guck ich ma nach einem anderen id3modul :D

danke
joa nää python is toll :D
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Dienstag 19. Dezember 2006, 14:05

Ihr müsst die Meldung schon genauer lesen. Da steht:

Code: Alles auswählen

Exception exceptions.AttributeError: "ID3 instance has no attribute 'modified'"
in <bound method ID3.__del__ of <ID3.ID3 instance at 0x01854B48>> ignored

In Deutsch: Die Exception ist in "ID3.__del__()" aufgetreten. Deswegen wurde sie auch ignoriert, weil Exceptions in __del__-Methoden immer ignoriert werden.

Sprich: es handelt sich um einen Bug im ID3-Modul, das in __del__ auf ein Attribut zugreifen will, das nicht/nicht mehr existiert.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
JanDMC
User
Beiträge: 95
Registriert: Donnerstag 23. September 2004, 19:35
Kontaktdaten:

Beitragvon JanDMC » Dienstag 19. Dezember 2006, 14:30

Danke das die exceptions in __del__ immer ignoreort werden wusste ich nich.. ma gucken dann schau ich mir die __del__ ma genauer an..


mfg Jan
joa nää python is toll :D
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Dienstag 19. Dezember 2006, 14:33

Ja, birkenfeld, hast recht. Allerdings - wenn ich mir das richtige Modul anschaue - ruft __del__ nur self.write() auf, was wiederum self.modified abfragt. Dieses aber kann gar nicht gelöscht werden - es sei denn, jemand fummelt hat da am Code rumgefummelt. Oder habe ich da auch was übersehen?

Gruß,
Christian
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 19. Dezember 2006, 18:07

CM hat geschrieben:Allerdings - wenn ich mir das richtige Modul anschaue - ruft __del__ nur self.write() auf, was wiederum self.modified abfragt. Dieses aber kann gar nicht gelöscht werden - es sei denn, jemand fummelt hat da am Code rumgefummelt. Oder habe ich da auch was übersehen?

Ja, das, insbesondere die zweite Warnung zu __del__():
Python 2.5 reference hat geschrieben:Also, when __del__() is invoked in response to a module being deleted (e.g., when execution of the program is done), other globals referenced by the __del__() method may already have been deleted.

... was scheinbar nicht nur bei globals der Fall ist sondern auch bei Instanzvariablen. Wie gesagt, __del__() sollte wirklich nach Möglichkeit nicht verwendet werden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Dienstag 19. Dezember 2006, 20:34

Leonidas hat geschrieben:
Python 2.5 reference hat geschrieben:Also, when __del__() is invoked in response to a module being deleted (e.g., when execution of the program is done), other globals referenced by the __del__() method may already have been deleted.

... was scheinbar nicht nur bei globals der Fall ist sondern auch bei Instanzvariablen.


Um $GOTTES willen nein! Das gilt natürlich *nicht* für Objekte, die an das Objekt gebunden sind auf dem `__del__()` aufgerufen wurde. Genau das soll/muss man ja mit "globalen" Objekten machen, damit man *sicher* sein kann, dass die noch nicht vom GC gefressen wurden.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 19. Dezember 2006, 21:46

Wie lässt sich dann CMs Beobachtung erklären? Das jemand einfach so mal self.modified löscht halte ich für unwarscheinlich.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Dienstag 19. Dezember 2006, 22:04

Keine Ahnung, im Modul selbst deutet nichts darauf hin.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder