文档

试一试

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

语法

试一试语句异常语句结束

描述

例子

试一试语句,抓语句结束方法中的语句试一试类中产生的错误块。这种方法允许您覆盖一组程序语句的默认错误行为。如果在a中有任何语句试一试块产生错误时,程序控制立即去块,其中包含错误处理语句。

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

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

例子

全部折叠

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

A = rand(3);B = ones(5);C = [a;B];
连接的矩阵的维数不一致。

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

试一试C = [a;B];如果(比较字符串(ME.identifierMATLAB:连接:dimensionMismatch)) MSG = [“维度不匹配发生:第一个参数已存在”...num2str(大小(2)),“列而第二列有”...num2str(大小(B, 2)),“列”。];causeException = MException(MATLAB: myCode:维度的、味精);ME = addCause(ME,causeException);结束重新抛出(我)结束
连接的矩阵的维数不一致。维度不匹配:第一个参数有3列,而第二个参数有5列。

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

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

试一试a = notfunction (5,6);警告(“使用功能的问题。赋值为0。);A = 0;结束
警告:使用函数时出现问题。赋值为0。

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

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

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

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

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

试一试a = notfunction (5,6);开关ME.identifier情况下“MATLAB: UndefinedFunction”警告(函数没有定义。赋值NaN。');a = NaN;情况下“MATLAB: scriptNotAFunction”警告([“试图将脚本作为函数执行。”...'运行脚本并将输出值赋为0。']);notaFunction;A = 0;否则重新抛出(我)结束结束
警告:函数未定义。分配NaN值。

提示

  • 你不能使用多个块中的试一试块,但是你可以完全嵌套try / catch块。

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

另请参阅

||

R2006a之前介绍

这个话题有用吗?