How to use try/catch so that my program rerun until it correct ?
16 ビュー (過去 30 日間)
古いコメントを表示
Tuong Nguyen Minh
2020 年 7 月 16 日
コメント済み: Tuong Nguyen Minh
2020 年 7 月 17 日
Dear Matlab users,
I need to process a large amount of data using parfor and I am running into a problem where my program can sometime success, sometime not success
parfor i = 1:100
MyProgram
end
Is there anyway to utilize the try/catch statement so that everytime when my progragram run into some kind of error, the worker will
1/ Retry untill success
2/ Put a warning about the iteration i and then abandon the current job to move on
Thank you very much
0 件のコメント
採用された回答
Walter Roberson
2020 年 7 月 16 日
niters = 100;
status = logical(niters, 1);
message = cell(niters, 1);
parfor i = 1 : niters
blah blah blah
try
something
status(i) = true;
message{i} = [];
catch ME
status(i) = false;
message{i} = ME;
end
end
6 件のコメント
Walter Roberson
2020 年 7 月 16 日
You do not have to keep track of retries; you could just let it retry indefinitely. That would make the code a bit more simple.
niters = 100;
parfor i = 1 : niters
blah blah initialization
while true
blah blah anything that needs to be reset every retry
try
something
break; %you did not fail, so you can stop retrying.
end
end
end
Perhaps it might be more clear to you as
niters = 100;
parfor i = 1 : niters
blah blah initialization
failed = true;
while failed
blah blah anything that needs to be reset every retry
try
something
failed = false;
end
end
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!