主要内容

捕捉MEX函数中的异常

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

此代码导致MATLAB引发异常,因为它为MATLAB错误地定义了输入参数sqrt作用catch块处理matlab::engine::MATLABException通过在MATLAB命令窗口中显示描述异常的字符串。

阵列工厂;std::shared_ptrmatlabPtr=getEngine();//没有值的变量会导致错误std::vectorarg;试试{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.what())});}

相关话题