是否有关于Matlab内置函数可以抛出异常的权威参考?

Tom*_*ure 12 matlab exception

例如,我想从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
Run Code Online (Sandbox Code Playgroud)

但我知道发现与之比较的神奇字符串(在本例中为'MATLAB:imread:fileOpen')的唯一方法是:

  1. 导致错误,捕获异常,并查看标识符.但要做到这一点需要很长时间.例如,如果文件存在但实际上不是图像文件,Matlab是否使用不同的异常标识符?如果它存在但我没有读取权限怎么样?如果它是一个目录怎么办?

  2. 看一下源代码.imread()是用Matlab编写的,所以这是可能的,但它不适用于其他函数.当然,imread()调用其他不是用Matlab编写的函数,异常可能会从它们中冒出来.

有没有权威的方法让我知道imread()可以抛出的所有异常?我希望这是在文档的某个地方,但我找不到它.

gnc*_*ais 0

我搜索了它,但没有找到任何东西......我认为它唯一可以帮助你的是分析 的源代码imread,我认为这是不可能的。但是,您始终可以尝试在Octave中查看相同函数的源代码,因为它几乎相同(我想)。