Vì không có khoản cuối cùng để khối try-catch trong MATLAB, tôi thấy mình viết rất nhiều mã như sau:Làm thế nào để bạn xử lý tài nguyên trong MATLAB một cách ngoại lệ an toàn? (Như "thử ... cuối cùng")
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);
tôi thấy có fclose chức năng ở hai nơi xấu xí và dễ bị lỗi.
Có cách nào tốt hơn để thực hiện việc này không?
Đây chỉ là một điểm nhỏ, nhưng tôi khuyên bạn không nên sử dụng tên biến "dòng" trong mã của bạn. Nó có thể kết thúc gây ra một số nhầm lẫn vì đã có sẵn một chức năng gọi là LINE. – gnovice
Ngoài ra, hãy kiểm tra http://stackoverflow.com/questions/8847866/how-can-i-close-files-that-are-left-open-after-an-error –