您可以實現一個try/catch塊來捕獲(原始isnt'it)錯誤消息,並在鏈接確實斷開時跳過圖像。
當我們使用以下語法:
try
A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');
catch ME
%// Just so we know what the identifier is.
ME
end
Matlab的第一個嘗試讀取URL所給出的圖像。如果它不能,我們要求它向catch
發送錯誤消息(實際上是MException)並執行一些其他適當的操作。
事情是,我們需要知道什麼是確切的錯誤消息,以便在try/catch
塊中識別它。
當我進入上面的代碼中,我得到了下面的結構ME
:
ME =
MException with properties:
identifier: 'MATLAB:imagesci:imread:fileFormat'
message: 'Unable to determine the file format.'
cause: {0x1 cell}
stack: [2x1 struct]
因此,一旦我們知道確切的識別器生成的錯誤,我們可以使用strcmp
尋找它在try/catch
塊。例如用下面的代碼:
clear
clc
try
A = imread('http://www.gossip.is/cgi-sys/suspendedpage.cgi');
catch ME
if strcmp(ME.identifier,'MATLAB:imagesci:imread:fileFormat')
disp('Image link broken')
end
A = imread('peppers.png');
end
imshow(A);
Matlab的顯示「圖像鏈接破碎」和讀取peppers.png
,如所預期。
希望有幫助!
我不知道mathlab,但R有一些錯誤處理,這應該很容易實現。看一下R.中的'try'。如果你遇到困難,請發佈你試過的東西,人們會幫你修復它。 – lukeA