MATLABtry,catch
MATLAB定义了一些用于控制错误的函数。 try-catch语句是一个错误控制函数,如下所述。
try- catch声明
Try-Catch语句提供错误处理控制。一般形式的Try-Catch声明是
try Statements catch exception Statements end
try和第一个执行之间的语句。如果在尝试和catch之间执行语句中没有出现错误,则MATLAB进一步执行end关键字后的语句/代码。如果在尝试和捕获之间的语句执行语句期间发生错误,则MATLAB在catch和end之间执行语句。可以在以下示例的帮助下解释try-catch语句。
示例:
a = ones(4); b = zeros(3); try c = [a;b]; catch ME disp(ME) end
输出:
MException with properties:
identifier: 'MATLAB:catenate:dimensionMismatch'
message: 'Dimensions of arrays being concatenated are not consistent.'
cause: {0?1 cell}
stack: [3×1 struct]
Correction: []

如果需要,我们可以使用嵌套的try/catch块,当try块中发生任何错误或异常时,MATLAB都会构造MException类的实例,并在catch中返回该对象。
a = ones(4); b = zeros(3); try c = [a;b]; catch ME % strcmp 字符串比较函数,用于检查 ME 标识符中的相同字符串 if (strcmp(ME.identifier,'MATLAB:catenate:dimensionMismatch')) % 如果为真,则更改消息属性 msg = ['dimension mismatch occured: First argument has ',... num2str(size(a,2)), ' columns, while second argument has ',... num2str(size(b,2)),' columns.']; causeException = MException('MATLAB:mycode:dimensions',msg) ME = addCause(ME, causeException); end end
输出:
causeException =
MException with properties:
identifier: 'MATLAB:mycode:dimensions'
message: 'dimension mismatch occured: First argument has 4 columns, while second argument has 3 columns.'
cause: {}
stack: [0×1 struct]
Correction: []祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)
精选教程推荐
👇 以下精选教程可能对您有帮助,拓展您的技术视野
暂无学习笔记,成为第一个分享的人吧!
您的笔记将帮助成千上万的学习者