Excepción de captura de tipos

Estoy jugando un poco con ctypes y C / C ++ DLL Tengo una dll de "matemáticas" bastante simple

<code>double Divide(double a, double b)
{
    if (b == 0)
    {
       throw new invalid_argument("b cannot be zero!");
    }

    return a / b;
}
</code>

Funciona hasta ahora, el único problema es que obtengo una excepción de error de Windows en Python y no puedo recuperar el texto.b no puede ser cero ¿Hay algún tipo de excepción especial que deba lanzar? ¿O debe alterarse el código de Python? código 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"
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta