从MATLAB调用C ++可执行文件时如何绕过错误对话框?

The*_*ner 1 c++ matlab dialog ui-automation swallowed-exceptions

我需要从forMATLAB中的循环运行C ++可执行文件。我为此编写了以下代码,

EqNumbers = [17 18 20 21 22 23];

for i = 1:length(EqNumbers)

    EqNumber = EqNumbers(i);
    WriteRunE_File(EqNumber);

    filename=['RunE_1.tcl'];
    system(['OpenSees.exe<',filename]);

end
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,它运行良好,但是有时会出现调试错误(如下图所示)。它提示我采取措施,如果我按“中止”按钮,则程序将继续进行下一次迭代。我只想使此过程自动化,对我来说,每次都无法手动按“中止”按钮,因为该程序中有1000多次迭代。

在此处输入图片说明

我尝试使用try-catch end以下方法,但没有达到目的。

EqNumbers = [17 18 20 21 22 23];


for i = 1:length(EqNumbers)
    try
        % Code to be executed goes here.

        EqNumber = EqNumbers(i);
        WriteRunE_File(EqNumber);

        filename=['RunE_1.tcl'];
        system(['OpenSees.exe<',filename]);
    catch
        disp('An error occurred in Equke');
        disp('Execution will continue.');
    end

end
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来绕过错误消息或自动按“中止”按钮。这样程序将自动移至下一个迭代。

注意:

我无权访问C ++源代码(我所拥有的都是可执行文件),因此无法更新的值citaR。这就是为什么我要在MATLAB中寻找解决方法。

Lig*_*ica 5

MATLAB不会弹出此对话框。您的系统是。

有人创建了一个使用未初始化变量且行为未定义的程序。他们以调试模式构建它。这种组合导致一个断言。您不能仅将其关闭。

即使可以,您也将中止该程序。这并不意味着“忽略问题”:而是“中止程序”。它尚未完成工作。崩溃了 每一次。

可执行文件有故障。期。

该程序的作者应为您提供一个发行版本:理想情况下,应为非越野车版本。

或者,由于该程序是开源的,并且可以在此处找到,您可以尝试构建一个新版本,或对其进行调试并提供一个修复程序。