当'if'部分下的语句中出现错误时,如何将控件移动到“if-else”的else部分?

时间:2016-05-17 12:01:32

标签: matlab

有没有办法制定条件,如果if下的语句/矩阵出现错误,那么在else下执行语句?

if (some condition)
some statment1/matrix1/variable1 
some statement2/matrix2/variable2
some statement3/matrix3/variable3

else newstatement/matrix %come to else part of the code if any of the statements 1,2 or 3 under if condition yields any error like dimension mismatch or anyother
end

3 个答案:

答案 0 :(得分:6)

没有内置机制可以跳转到else部分。但是你可以使用这样的结构:

condition_flag = (some condition);
error_flag = false;

if condition_flag
    try
        some statment1/matrix1/variable1 
        some statement2/matrix2/variable2
        some statement3/matrix3/variable3
    catch
        error_flag = true;
    end
end

if ~condition_flag || error_flag
    %if any of the statements 1,2 or 3 under if condition yields any error  like dimension mismatch or anyother
    ....
    error_flag = false;
end

答案 1 :(得分:0)

Mohsen Nostrania的替代解决方案。

else_flag=true;
if (condition)
  try
    %% The if code
    else_flag=false;
  end
end
if else_flag
  %% The else code
end

else_flag=false;命令仅在condition为真且<if code>内未发生错误时执行。

请注意,两个解决方案都按照您的要求执行 - 执行<if code>命令直到发生错误,然后执行<else code>

答案 2 :(得分:0)

如果想要减少if陈述的tre数量:

try
  if statement
    %% The if code
  else
    %% Obvious error
    a(0);
  end
catch
  %% The else code
end