Main Content

Detectar excepciones en la función MEX

Para invalidar el comportamiento de error predeterminado, puede detectar excepciones producidas en funciones MEX al llamar a funciones.MATLAB®

Este código hace que se lance una excepción porque define el argumento de entrada incorrectamente para la función.MATLABMATLABsqrt El bloque catch controla el mostrando la cadena que describe la excepción en la ventana de comandos.matlab::engine::MATLABExceptionMATLAB

ArrayFactory factory;
std::shared_ptr<matlab::engine::MATLABEngine> matlabPtr = getEngine();

// Variable with no value causes error
std::vector<matlab::data::Array> arg;
try {
    matlab::data::Array result = 
        matlabPtr->feval(u"sqrt", arg);
}
catch (const matlab::engine::MATLABException& ex) {
    matlabPtr->feval(u"disp", 0, std::vector<Array>({factory.createScalar(ex.what()) }));
}

Temas relacionados