例如,我想从imread()中获取一个不可读取的文件,该路径异常.我可以做这个.
imagePath = 'a_picture.jpg';
try
im = imread(imagePath);
catch exception
if strcmp(exception.identifier, 'MATLAB:imread:fileOpen')
fprintf('Couldn''t open %s.\n', imagePath);
im = [];
else
fprintf('Unexpected error (%s): %s\n', ...
exception.identifier, exception.message);
throw(exception);
end
end
但是,我知道发现魔术字符串(“MATLAB:imread:fileOpen”在这种情况下)的唯一方式是:
>导致错误,捕获异常,并查看标识符.但是,这样做需要很长时间.例如,如果文件存在但实际上不是图像文件,Matlab是否使用不同的异常标识符?如果存在但我没有读权限呢?如果是目录怎么办?
>看看源代码. imread()写在Matlab中,所以这是可能的,但它不会是其他功能.当然,imread()调用不是在Matlab中编写的其他函数,异常可能会从它们中冒出来.
有没有任何权威的方式,我知道所有的例外imread()可以抛出?我希望这在文档的某个地方,但我找不到.