Como você lida com recursos no MATLAB de maneira segura e sem exceções? (como "tente ... finalmente")

Como não há uma cláusula finally para o bloco try-catch no MATLAB, eu me vejo escrevendo muitos códigos como o seguinte:

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);

Eu acho que ter a função fclose em dois lugares é feia e propensa a erros.

Existe uma maneira melhor de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion