主要内容

在MEX函数中捕获异常

为了覆盖默认的错误行为,您可以捕获调用MATLAB时在MEX函数中抛出的异常®功能。

这段代码导致MATLAB抛出异常,因为它错误地为MATLAB定义了输入参数√6函数。捕捉块处理matlab:引擎::MATLABException通过在MATLAB命令窗口中显示描述异常的字符串。

ArrayFactory工厂;std::shared_ptr matlabPtr = getEngine();//没有值的变量导致错误std::向量数组< matlab::数据::>参数;try {matlab::data::Array result = matlabPtr->feval(u"sqrt", arg);} catch (const matlab::engine::MATLABException& ex) {matlabPtr->feval(u"disp", 0, std::vector({factory.createScalar(ex.什么())}));}

相关的话题