主要内容

试一试

执行语句并捕获产生的错误

语法

试一试语句异常语句结束

描述

例子

试一试语句,抓语句结束的语句试一试块和捕获导致的错误块。这种方法允许您覆盖一组程序语句的默认错误行为。如果a中的任何语句试一试块产生一个错误,程序立即控制到块,其中包含错误处理语句。

异常是一个MException对象,该对象允许您标识错误。的块将当前异常对象赋给变量异常

这两个试一试块可以包含嵌套的try / catch语句。

例子

全部折叠

创建两个不能垂直连接的矩阵。

a = rand(3);b = oon(5);C =[一个;B];
使用vertcat错误被连接的矩阵的维数不一致。

使用try / catch以显示有关尺寸的更多信息。

试一试C =[一个;B];如果(比较字符串(ME.identifierMATLAB:连接:dimensionMismatch) MSG = ['发生维度不匹配:第一个参数有'...num2str(大小(2)),' column while second has '...num2str(大小(B, 2)),“列”。];geareexception = mexception('MATLAB:MYCODE:尺寸',msg);我=痛苦(ME,MEANEEXception);结束重新抛出(我)结束
使用vertcat错误被连接的矩阵的维数不一致。原因:维度不匹配:第一个参数有3列,第二个参数有5列。

如果矩阵维数不一致,MATLAB®显示关于不匹配的更多信息。任何其他错误照常出现。

捕获由调用不存在的函数而生成的任何异常,notaFunction.如果出现异常,发出警告并将输出值赋值为0。

试一试a = nota间(5,6);警告(使用函数的问题。赋值为0 ');= 0;结束
警告:使用函数有问题。赋值为0。

就其本身而言,调用notaFunction导致错误。如果你使用试一试,这段代码捕获任何异常并将其重新打包为警告,允许MATLAB继续执行后续命令。

使用try / catch以不同的方式处理不同类型的错误。

  • 如果函数notaFunction未定义,发出警告而不是错误,并将输出赋值为

  • 如果notaFunction.m存在,但它是一个脚本而不是函数,发出警告而不是错误,运行脚本并将输出赋值为0

  • 如果MATLAB为任何其他原因抛出错误,则重新开始异常。

试一试a = nota间(5,6);转变ME.identifier情况下“MATLAB: UndefinedFunction”警告('功能未定义。分配南部的价值。');一个=南;情况下'matlab:scriptnotafunction'警告([试图将脚本作为函数执行。...'运行脚本并将输出赋值为0 ']);notaFunction;= 0;否则重新抛出(我)结束结束
警告:函数未定义。赋值NaN。

提示

  • 不能使用多个块内试一试块,但您可以嵌套完成try / catch块。

  • 不像其他一些语言,MATLAB不允许使用最后块内try / catch语句。

之前介绍过的R2006a