[初学笔记] 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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值