我一直在寻找,但我认为它不存在。返回本质上是强制关闭你的函数,这很好,但在我当前的脚本中,如果它做错了什么,我希望它返回到它存在的子函数的开头。
是否已经存在任何功能可以做到这一点,或者我必须建立一个系统才能让自己做到这一点?
我一直在寻找,但我认为它不存在。返回本质上是强制关闭你的函数,这很好,但在我当前的脚本中,如果它做错了什么,我希望它返回到它存在的子函数的开头。
是否已经存在任何功能可以做到这一点,或者我必须建立一个系统才能让自己做到这一点?
当某事“做错了”时,不要使用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条件中检查该错误代码。
如果您不是在寻找错误处理,而只是在寻找结果处理,我会这样做
finishedSuccesfully = false
while ~finishedSuccesfully
output = myFunction();
finishedSuccesfully = evaluateoutput(output);
end
只需使用while 1循环来环绕整个函数以及continue何时要重新启动该函数。