Ctypes catching exception

c++, ctypes, python

Solution

Going through the ctypes documentation for Python 2.7.3 I can't see any reference to C++ and throwing exceptions from C++ code called via ctypes. It seems ctypes was meant for calling C functions only and does not handle C++ exceptions.

Problem

I'm playing a little bit with ctypes and C/C++ DLLs I have a quite simple "math" dll ``` double Divide(double a, double b) { if (b == 0) { throw new invalid_argument("b cannot be zero!"); } return a / b; } ``` It works so far the only problem, i get a WindowsError Exception in Python and I cannot retrieve the text b cannot be zero Is there some special exception type I must throw? Or must the Python code be altered? python code: ``` from ctypes import * mathdll=cdll.MathFuncsDll divide = mathdll.Divide divide.restype = c_double divide.argtypes = [c_double, c_double] try: print divide (10,0) except WindowsError: print "lalal" except: print "dada" ```

Original source