How to put script on pause instead of quitting when encountering error
7 次查看(过去 30 天)
显示 更早的评论
I am trying annotate several genomes. So I made a script that first predicts open reading frames and then BLAST-searches those against remote protein database. But I have a problem each time there is smth wrong with connection. In this case the script just quits because of the 'lost connection' error. Is there any option that if the script faces an error, it pauses the whole thing and continues shortly after rather than quitting completely?
0 个评论
采纳的回答
Guillaume
2015-3-10
Use a try catch block inside a while loop to catch the error and attempt the reconnection. Something like
notconnected = true;
while notconnected
try
connect(); %replace with whatever code you use to connect
%if connect throws an error, the following won't be executed and
%notconnected will stay true
notconnected = false;
catch
%connection failed
pause(2); %wait a little while before trying again
end
end %unless connect succeeded and notconnected is alse try to connect again
更多回答(1 个)
Giorgos Papakonstantinou
2015-3-10
编辑:Giorgos Papakonstantinou
2015-3-10
Ekaterina, as far as I know you, could enclose the part of the code, which tries to establish a connection within a try, catch statement.
For example lets say you want to establish a connection to the Matlab central answers.
What you could do is this:
ii=0;
while ii<10
try
A = urlread('http://www.mathworks.com/matlabcentral/ans/');
end
ii = ii+1;
end
Here I have intentionally given a false url and therefore the variable A will not exist. Matlab would complain if I had not enclosed the urlread command in a try, catch statement and would have thrown an error.
Error using urlreadwrite (line 88)
The server did not find a resource to match this request.
Error in urlread (line 36)
[s,status] = urlreadwrite(mfilename,catchErrors,url,varargin{:});
You can also modify your while condition for example:
while isempty(A)
assuming that prior the while loop you have issued:
A = [];
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!