Poiché non v'è alcuna clausola finally al blocco try-catch in MATLAB, mi ritrovo a scrivere un sacco di codice come il seguente:Come gestite le risorse in MATLAB in modo eccezionalmente sicuro? (Come "try ... finally")
fid = fopen(filename);
if fid==-1
error('Couldn''t open file');
end
try
line = getl(fid);
catch ME
fclose(fid);
rethrow ME;
end
fclose(fid);
trovo avendo il fclose funziona in due posti brutti e soggetti a errori.
C'è un modo migliore per farlo?
Questo è solo un punto secondario, ma suggerirei di non utilizzare la variabile "riga" nel codice. Potrebbe finire per causare qualche confusione poiché esiste già una funzione integrata chiamata LINE. – gnovice
Controlla anche http://stackoverflow.com/questions/8847866/how-can-i-close-files-that-are-left-open-after-an-error –