Wie erstelle ich einen benutzerdefinierten Python-Ausnahmetyp in der C-Erweiterung?

9

Ich schreibe ein Python-Modul in C. Ich muss Fehler melden, die nicht durch eingebaute Python-Ausnahmen beschrieben werden können. Ich möchte daher Ausnahmen meines eigenen Typs auslösen. Das Problem besteht darin, dass die Python-Richtlinie alle Ausnahmen von der BaseException-Klasse ableiten soll. Ich weiß, wie man ein abgeleitetes Typobjekt anstellt (dem tp_base memeber zuweisend), aber ich weiß nicht, wie man einen Verweis auf BaseException Art Gegenstand erhält. PyExc_BaseException ist eine Referenz auf PyObject, die eine Klasse und kein Typobjekt darstellt.

Wie werfe ich benutzerdefinierte Python-Ausnahmen aus C-Code?

    
Basilevs 20.06.2011, 12:21
quelle

1 Antwort

4

Die einfachste Methode zum Erstellen eines neuen Ausnahmetyps im C-Code besteht darin, PyErr_NewException .

    
Sven Marnach 20.06.2011 12:47
quelle

Tags und Links