0

我一直在寻找,但我认为它不存在。返回本质上是强制关闭你的函数,这很好,但在我当前的脚本中,如果它做错了什么,我希望它返回到它存在的子函数的开头。

是否已经存在任何功能可以做到这一点,或者我必须建立一个系统才能让自己做到这一点?

4

3 回答 3

1

当某事“做错了”时,不要使用return, ,而是在-loop中使用/ :errortrycatchwhile

while 1
    try
        myFunction();
        break; % if myFunction() was successful, this will exit the while loop
    catch
        % do some sort of processing here, then go back to the while loop
    end
end 

/块的catch部分只有在出现错误时才会执行。意味着函数成功(它是否给出正确的输出完全是一个不同的问题)。trycatchmyFunction()return


while或者,您可以按照@natan 的建议将您的函数放在-loop 中。返回某种错误代码,然后在while条件中检查该错误代码。

于 2013-06-07T05:07:08.783 回答
0

如果您不是在寻找错误处理,而只是在寻找结果处理,我会这样做

finishedSuccesfully = false
while ~finishedSuccesfully 
    output = myFunction();
    finishedSuccesfully = evaluateoutput(output);
end
于 2013-06-07T11:09:08.527 回答
0

只需使用while 1循环来环绕整个函数以及continue何时要重新启动该函数。

于 2013-06-07T05:08:08.127 回答