try except verständnis Problem

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.
Antworten
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Hallo Leute,

ich sitze gerade an einem Code von einem Vorgänger von mir, der nicht mehr zu erreichen ist und verstehe hier einen Teil nicht, vielleicht kann mir das jemand erklären...

Code: Alles auswählen

            for bond in bonds:
                try:
                    atomcnt1 = my_atom_to_atom[bond[0]]
                    atomcnt2 = my_atom_to_atom[bond[1]]
                    bondtype = bond[2]
                    if atomcnt1 < atomcnt2:
                        mol2mol2.add_bond([atomcnt1, atomcnt2, bondtype])
                    else:
                        mol2mol2.add_bond([atomcnt2, atomcnt1, bondtype])
                except:
                    print 'Warning from cavity2Mol2::_extract_info: Inter-residue bond wrong: ', bond[0], bond[1], bondtype
Ich kann mir eben nicht wirklich vorstellen, wann und warum hier eine exception überhaupt ausgelöst werden soll?

in der add_bond Methode wird nur die Liste an eine andere Liste angehängt.

Was versteh ich hier nicht?
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Eine Exception wird dann ausgelöst, wenn bond unter Umständen weniger als 3 Einträge besitzt oder die Werte von bond[0], bond[1] ungültige Indizes für my_atom_to_atom haben.
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Genauer gesagt wird die Exception eigentlich immer ausgelöst wenn irgendein Fehler auftritt (da keine Exception angegeben). Also z.B. auch wenn eine Variable innerhalb des Blocks falsch geschrieben wurde oder bond kein Iterable wäre. Das war sicher nicht so gedacht und ist auch (ganz besonders in diesem Fall) schlechter Stil.
Der eigentlich gewünschte Grund der Exception kann also nur aus dem Fehlertext in Zeile 11 geschlossen werden. Um diese zu interpretieren fehlt mir allerdings das Hintergrundwissen.

MFG HerrHagen
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

[wiki]try...except[/wiki] :lol:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Ok, danke euch allen... Ich denk ich hab verstanden wie das try except funktionieren soll und werde die Stelle etwas brauchbarer umbauen bzw behandeln.
Antworten