, если вы посмотрите на документацию try вы можете иметь пример.
Else хочет вы хотите для вашего Исходного кода:
M = 3;
j = 1;
k = [Inf, 5, 4];
while M>0
try
M = M-1
u = k(j)
if (isinf(u)||isnan(u)), error(''), end;
catch
disp('I catch an error!');
j = j+1
end
end
Потому что если вы никогда не получите ошибку в коде, он никогда не будет идти в улове. Поэтому, включив error('');
, просто скажите, идите выполнить инструкцию в catch.
Но вы можете просто изменить свой код, заменив error()
высказываниями в свой улов, как это:
while M>0
M = M-1
u = k(j)
if (isinf(u)||isnan(u)), j = j+1, end;
end
EDIT
Если вы посмотрите в документации, вы можете найдены это:
% ERROR(MSGSTRUCT) reports the error using fields stored in the scalar
% structure MSGSTRUCT. This structure can contain these fields:
%
% message - Error message string
% identifier - See MESSAGE IDENTIFIERS, below
% stack - Struct similar to the output of the DBSTACK function
%
% If MSGSTRUCT is an empty structure, no action is taken and ERROR
% returns without exiting the program. If you do not specify the
% stack, the ERROR function determines it from the current file and line.
Так что никаких действий не предпринимается, поскольку вы можете прочитать. И ничего, поэтому уловки не получают никакой информации.
Спасибо! Хорошо иметь подтверждение этого. В документации для ошибки говорится: «Все входные аргументы строки должны быть заключены в одинарные кавычки. Если msgString - пустая строка, команда ошибки не действует». Я должен был искать «ошибку» вместо «try/catch»! Спасибо. :) – Catalina
Откинутый назад, так как я ошибся ... извините. – chappjc