我一直在寻找,但我认为它不存在。返回本质上是强制关闭你的函数,这很好,但在我当前的脚本中,如果它做错了什么,我希望它返回到它存在的子函数的开头。
是否已经存在任何功能可以做到这一点,或者我必须建立一个系统才能让自己做到这一点?
我一直在寻找,但我认为它不存在。返回本质上是强制关闭你的函数,这很好,但在我当前的脚本中,如果它做错了什么,我希望它返回到它存在的子函数的开头。
是否已经存在任何功能可以做到这一点,或者我必须建立一个系统才能让自己做到这一点?
当某事“做错了”时,不要使用return
, ,而是在-loop中使用/ :error
try
catch
while
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
部分只有在出现错误时才会执行。意味着函数成功(它是否给出正确的输出完全是一个不同的问题)。try
catch
myFunction()
return
while
或者,您可以按照@natan 的建议将您的函数放在-loop 中。返回某种错误代码,然后在while
条件中检查该错误代码。
如果您不是在寻找错误处理,而只是在寻找结果处理,我会这样做
finishedSuccesfully = false
while ~finishedSuccesfully
output = myFunction();
finishedSuccesfully = evaluateoutput(output);
end
只需使用while 1
循环来环绕整个函数以及continue
何时要重新启动该函数。