[Python-de] die aufrufenden funktion suchen

"Martin v. Löwis" martin at v.loewis.de
Di Sep 11 15:59:33 UTC 2007


> Ich kriegs nicht hin. Wenn ich das prog im debugger (Wing IDE) laufen 
> lasse funktioniert es. Wenn ich das programm von der console 
> (Terminal) aus aufrufe funktioniert es nicht. Der stack hat dann eine 
> Länge von 1.
> 
> Wo ist mein Fehler?

Um Hartmuts Antwort mit anderen Worten zu sagen: Natürlich hat er das
(der Stack, eine Länge von 1). Du ermittelst ja den Aufrufer von
__str__, und nicht die Stelle, wo die Ausnahme ausgelöst wurde.
__str__ wird aufgerufen, wenn die Ausnahme ausgegeben werden soll,
und das passiert, wenn sie nicht abgefangen wurde. Das wiederum
passiert, wenn der ganze Stack weg ist und der Interpreter kurz
davor, zuende zu gehen.

Ciao,
Martin