Matlab之异常处理机制

优秀的程序员能够指导用户如何使用他编写的程序,而且在用户使用不当时,能够给出错误提示信息,并引导用户正确使用函数。
例子:先建立计算阶乘n!=n*(n-1)(n-2)……21,然后给函数ex(n)输入正确的参数和错误的参数。

function ex(n)
    m = 1;
    tic
    for k = 2 : n
        m = m * k;      
    end
    toc

结果见下图:
在这里插入图片描述
程序并没有报错。其实输入的n的值已经不在k的取值范围了。此时应该提示用户输入有错。
程序添加如下语句:

function ex(n)
    m = 1;
    tic
    if n < 0
        error('input must be positive,stopped');
    end
    for k = 2 : n
        m = m * k;      
    end
    toc

运行见下图:
在这里插入图片描述
matlab编程时很多错误是由于越界造成的,尤其是使用矩阵时,要注意引用矩阵位置不要超过他的边界。另外,如果用户输入的函数参数数目超过设定的最大个数,或者类型不合要求也会出现这种错误。
还有对于输入参数数目小于设定个数的情形,程序员在编写程序时也应当注意处理这种情况,采用nargin函数可以判断输入参数的个数,从而设定为被指定的输入参数的值或者直接报错。
例子:
利用nargin函数,实现两个多项式的相加,并具有一定的报错功能。

function p = ex(a,b)
    if nargin ==1
        b = zeros(4,1)
    elseif nargin == 0
        error('empty input');
    end
    a = a(:).';b = b(:).';
    na = length(a);nb = length(b);
    p = [zeros(1,nb-na) a] + [zeros(1,na-nb) b];
end

结果如下:
在这里插入图片描述

发布了56 篇原创文章 · 获赞 18 · 访问量 3457

猜你喜欢

转载自blog.csdn.net/kangjielearning/article/details/105126874
今日推荐