MATLAB:使用try / catch时收到错误消息

时间:2013-11-30 11:21:29

标签: matlab error-handling camera try-catch snapshot

这就是为什么我编写了一个包装器函数,它试图处理错误,以便在丢帧的情况下,它只是再次被捕获并且不会中止正在运行的代码:

function img = getsnapshotfcn(obj, maxRetries, pausing)
    % Default args
    if(nargin < 3)
        pausing = 4; % in sec
    end
    if(nargin < 2)
        maxRetries = 20;
    end

    % Try to capture snapshot...
    i = 0;
    while(1)
        i = i+1;
        try
            img = getsnapshot(obj);

            % success? -> break loop
            break;
        catch err
            % Pause shortly before retry
            pause(pausing);
        end

        % maxRetries reached? -> error
        if(i > maxRetries)
            error('snapshot:maxRetriesReached', 'blaaa...');
        end
    end
end

现在使用getsnapshotfcn()我有时仍然会在控制台中显示上面发布的错误消息,我想知道为什么。我没想到错误就消失了(请不要帮我解决这个问题,我已经知道我需要设置PacketDelay我已经做过了,但在极少数情况下它仍然会发生,即使在快速CPU)但我预计它不会显示,因为我预期它只是通过try-catch捕获。

它可能仍然在控制台中显示? 非常感谢你提前。

1 个答案:

答案 0 :(得分:0)

我可以使用

在MATLAB中使用evalc来解决它
evalc('img = getsnapshot(obj);')

而不是

img = getsnapshot(obj);

在上面的代码中: - )