[初学笔记] try...catch...end语句

matlab的代码是按行执行的,如果碰到错误行,则程序中断。try..catch可以使得可能出错代码不影响后面代码的继续执行,也可以检查,排查,解决程序的一些错误


(1)try  end

即使try中间运算会出错,依然运算end之后的的东西,相当于try语句中的东西即使出错不会进行预算

>> m = rand(3,4);
n = magic(5);
try
    a = m*n;
    disp(a)
end
disp(m)
disp(n)

    0.6787    0.3922    0.7060    0.0462
    0.7577    0.6555    0.0318    0.0971
    0.7431    0.1712    0.2769    0.8235
    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9


下面是正确代码 和 错误代码 看他们在try语句中的执行结果

>> m = rand(3,4);
k = rand(4,5);
n = magic(5);

>>
% 下面是一段正确的代码
try
    b = m * k;
    disp (b)
    disp('successed')  
end
    0.9213    0.5138    0.3379    0.3830    0.5733
    0.7547    0.5138    0.3532    0.5112    0.4859
    1.2634    1.1765    1.0663    1.6342    0.9033
successed


>>
% 下面是一段不符合矩阵乘法运算的代码
try
    a = m*n;
    disp(a)
    disp('successed')
end
>>


是的因为没有定义错误代码end之后的输出,所以try失败也没有提醒




(2)try   catch   end

当程序碰到try里面的东西有错误的时候,可以直接执行catch里面的东西,类似于 if else 语句

可以用于检查程序的错误


>> m = rand(3,4);
k = rand(4,5);
n = magic(5);
try
    a = m*n;
    disp(a)
    disp('first one is correct')
catch
     b = m * k;
    disp (b)
    disp('second one is correct')   
   
end



    1.2346    1.2908    0.8445    1.4148    1.6994
    1.0708    1.0095    0.7283    1.1450    1.4246
    0.9698    0.8756    0.5689    0.8565    1.3259
second one is correct


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值