matlab的try-catch模块使用

2025-10-29 10:34:17

1、try模块通常格式就是:

try

   (commands)

catch

   (if error commands)

end

matlab的try-catch模块使用

2、(commands)就是检查的命令,try就是一个开始,在(commands)里面可以输入任何命令(部分函数特用命令不可以,像nargin),而且特别的是如果出现错误不会停止运行,不过就执行其他命令。范围就是try-catch里面的命令。

matlab的try-catch模块使用

3、(if error commands)就是如果try到catch里面的任何一条命令出现错误(警告不算),那么就开始执行(if error commands)命令(翻译好像有些不对),范围就是catch-end里面的命令

4、try也可以双份,就比如:

try

   try

      ?????

   catch

      ?????

   end

catch

   try

      ?????

   catch

      ?????

   end

end

这样也是可以的,当然里面也可以是什么for,if之类的

matlab的try-catch模块使用

5、其实和if有点关系,try就好像是:命令如果对,退出到end,如果不对,执行catch-end之间的命令,执行完毕,结束。

6、使用lasterr和lasterror可以显示try里面的错误问题(就是和窗口里面的一样)

使用lasterr显示一个字符串,里面有为什么错误;

使用lasterror显示一个结构体,里面有为什么错误和简单描述。

matlab的try-catch模块使用

7、如果只有try和end没有catch也可以,只不过如果出现错误既不报警也不再运行try模块

matlab的try-catch模块使用

8、注意,如果catch-end范围(if error commands命令)出现错误不会忽略,会出现错误。

如果try-catch范围里面出现错误而且不是最后一条命令不会再执行后面的命令,直接运行catch-end语句

matlab的try-catch模块使用

matlab的try-catch模块使用

1、比如,一个最简单的try模块:

a=5;

try

   a=a+5;

   disp(num2str(a))   %最后显示a数值

catch

   disp('Error')

   a=nan

end

matlab的try-catch模块使用

2、因为a变量存在,而且a=a+5也一点没错,所以就正常运行了,而且显示了a的数值

3、那么如果修改一下try模块,把命令修改成:

a=5;

try

   a=a+q   %不对,没有变量q

   disp(num2str(a))   %最后显示a数值

catch

   disp('Error')

   a=nan

end

matlab的try-catch模块使用

4、因为当中并没有指定q变量,所以造成错误,a=nan,而且报告Error,因为在a=a+q错误,disp没有显示a数值。

5、那么,我们可以编一个模块来判断是否存在名称为a变量:

try

   a;

   disp('存在''a''变量')

catch

   disp('不存在''a''变量')

end

matlab的try-catch模块使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢