Por ejemplo, quiero ver una excepción couldn't-read-a-file-at-that-path de imread(). Puedo hacer esto.¿Existe alguna referencia autorizada sobre qué excepciones pueden arrojarse por las funciones incorporadas de Matlab?
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
Pero las únicas formas que conozco para descubrir la cadena mágica para comparar con ('MATLAB: imread: fileOpen' en este caso), son:
causa del error, detectar la excepción , y mira el identificador. Pero llevaría mucho tiempo hacer esto bien. Por ejemplo, ¿Matlab usa un identificador de excepción diferente si el archivo existe pero no es realmente un archivo de imagen? ¿Qué tal si existe pero no tengo permiso de lectura? ¿Qué pasa si es un directorio?
Mire el código fuente. imread() está escrito en Matlab, así que esto es posible, pero no sería para otras funciones. Y, por supuesto, imread() llama a otras funciones que no están escritas en Matlab, y podrían surgir excepciones de ellas.
¿Hay alguna manera autorizada de saber todas las excepciones que imread() puede arrojar? Espero que esto esté en la documentación en alguna parte, pero no puedo encontrarlo.
Posible duplicado: [MATLAB: una referencia sobre los mensajes de error] (http://stackoverflow.com/questions/4562698/matlab-a-reference-about-error-messages) – gnovice
¿Por qué importa qué excepción se arroja? Funcionó o no funcionó, ¿verdad? – MatlabDoug
Una mejor pregunta: ¿por qué necesita identificar el error con tanta especificidad, cuando todo lo que realmente está haciendo con él es efectivamente volver a lanzarlo? – gnovice