repeat the iteration with an error using try/catch
19 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mos_bad
el 3 de Abr. de 2020
Editada: James Tursa
el 4 de Abr. de 2020
I wrote a nested for loop to exexcute a huge number of iterations. However, sometimes an error stops the program. I want to repeat the iEv'th iteration in case an error occurs and then continue to next iteration. Please see below the code and let me know if it should be modified.
for iTcm=1:nTcm
for iScen=1:nScen
for iEv=1:nEv
try
MyProgramHere
catch ME
disp(ME);
fprintf('Retrying the program...\n');
end
end
end
end
0 comentarios
Respuesta aceptada
James Tursa
el 3 de Abr. de 2020
Editada: James Tursa
el 3 de Abr. de 2020
Maybe this construct does what you want
while( true )
try
MyProgramHere
break
catch ME
disp(ME);
fprintf('Retrying the program...\n');
end
end
3 comentarios
James Tursa
el 3 de Abr. de 2020
Editada: James Tursa
el 4 de Abr. de 2020
No. I meant exactly what I wrote, without this line:
iEv = iEv - 1; % delete this line
By getting rid of this line, it will keep repeating the same iteration indefinitely until it passes. iEv doesn't change until you do the iteration successfully. If you want a limit on the number of tries before you generate an error then additional code would need to be added.
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!