How do I continue to read files in a loop when an error occurs?

5 views (last 30 days)
Hello, I am trying to read .FIT files provided by my teacher and when reading the last bunch of them an error occurs. I tried using a try catch to continue, and it skips over and continues the loop, but I am not getting my value D.
Error using fitsinfo>openFile (line 760)
Unable to open file. File might be corrupt or filename might have unsupported characters.
for l = 100:999
try
fit2file = sprintf('x.000000%d.FIT',l);
D = fitsread(fit2file);
catch
end
end
Thank you in advance
  2 Comments
Mario Malic
Mario Malic on 29 Nov 2020
Try reading the file that causes the error to check if it's corrupted. If It's not, consider renaming your files, 'x.00001.FIT' could be prone to failures.
Walter Roberson
Walter Roberson on 30 Nov 2020
your loop overwrites D with the last file content it was able to read, but does not define D if no files could be read.

Sign in to comment.

Answers (1)

Sreeram
Sreeram on 14 May 2025
Hi Aru,
I would like to second both Walter’s and Mario’s comments. In addition to their suggestions, I noticed that the same error message is thrown when a FITS file is inaccessible in MATLAB:
D = fitsread("nonexistent.fits");
Error using fitsinfo>openFile (line 760)
Unable to open file. File might be corrupt or filename might have unsupported characters.

Error in fitsinfo (line 212)
fid = openFile(filename);

Error in fitsread (line 103)
info = fitsinfo(filename);
So, you might want to double-check whether the file actually exists and is accessible. If the files are not accessible, you can add the directory containing the FITS files to the MATLAB path using "addpath".
Thanks!
Sreeram

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!