[Python-de] Aufrufunterschiede zwischen C-Wrapper und native

"Martin v. Löwis" martin at v.loewis.de
Mon Jun 26 08:08:51 CEST 2006


Markus Heller wrote:
> ich habe ein sehr merkwürdiges Phänomen entdeckt :-) Wenn ich folgendes 
> Programm von meiner in C++ eingebetteten Python-Instanz starten lasse, (ich 
> springe die "go"-Funktion an) bekomme ich "Document is not well formed. 
> 
> Wenn ich das Programm standalone laufen lasse, sagt es mir, daß mein Dokument 
> sehr wohl well-formed ist. 
> 
> Woran kann das liegen? 

Das liegt sicher daran, dass die Ausnahme, die Du bekommst, eine andere
ist. "except Exception" ist sehr allgemein; es könnte sich auch um einen
ImportError handeln.

Du solltest:
1. Dein Programm so umwandeln, dass die spezifische Ausnahme getrennt
   von der allgemeinen behandelt wird, etwa

   try:
      ...
   except SAXParseException, e:
      print "%s is NOT well-formed! %s" % (filename, e)
   except Exception, e:
      print "Other error: %s: %s" % (e.__class__, e)

2. Dann ermitteln, um welche Ausnahme es sich beim eingebetteten
   Fall wirklich handelt.

Ciao,
Martin