Puesto que no hay fin a la cláusula de bloque try-catch en MATLAB, me encuentro escribiendo un montón de código como el siguiente:¿Cómo se manejan los recursos en MATLAB de una manera segura y excepcional? (Como "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);
Me parece que tiene la fclose función en dos lugares feo y propenso a errores.
¿Hay una mejor manera de hacerlo?
Este es solo un punto menor, pero sugeriría no usar el nombre de variable "línea" en su código. Podría terminar causando confusión ya que ya hay una función incorporada llamada LINE. – gnovice
También verifique http://stackoverflow.com/questions/8847866/how-can-i-close-files-that-are-left-open-after-an-error –