文档

MException类

获取错误信息

描述

任何MATLAB®检测到一个错误的代码,必须构造一个抛出一个异常MException对象。这个类包含可收回错误的信息。MATLAB可以把预定义的异常或异常构造。

建设

我= MException (是否,msgtext)捕捉到一个特定的错误信息并将其存储在MException对象,。的MException对象是由一个消息标识符,是否一个错误消息,msgtext

我= MException (是否,msgtext,A1,…,一个)允许错误消息的格式使用文本或数字值,A1,…,一个取代转换说明符msgtext在运行时。

输入参数

全部展开

错误的标识符指定为一个特征向量。使用异常处理的消息标识符,以便更好地识别错误或控制一个选定的源程序异常的子集。

包括一个消息标识符组件助记符。标识符必须包含一个冒号和遵循一个简单的格式:组件:助记符。的组件助记符字段必须以字母开头。剩余的字符可以# (a - z、a - z 0 - 9)和下划线。任何空白字符可以出现在任何地方是否。有关更多信息,请参见消息标识符

例子:MyComponent”添加:noSuchVariable

信息错误的原因和如何正确,指定为一个特征向量。格式化文本,使用转义序列,如\ t\ n。你也可以使用任何支持的格式说明符金宝appsprintf功能,如% s% d。说明符通过指定值的转换A1,…,一个输入参数。有关更多信息,请参见格式化文本

例子:打开文件错误。

例子:“第% 1行错误”。

数字或字符数组,指定为一个标量、向量,矩阵,或多维数组。这个输入参数提供的值对应的转换说明符和替换msgtext

属性

全部展开

特征向量惟一地标识错误,指定为一个特征向量的是否输入参数。这个属性是只读的。有关更多信息,请参见消息标识符

特征向量包含错误消息显示MATLAB抛出异常时,指定的msgtextA1,…,一个输入参数。这个属性是只读的。有关更多信息,请参见文本的错误消息

结构数组,其中包含堆栈跟踪信息包括文件名称(文件),函数名(的名字)和行号(MATLAB抛出异常)。如果错误发生在调用函数,堆栈属性还包含文件名、函数名和行号为每个被调用的函数。MATLAB生成堆栈只有当它抛出的异常。

堆栈是一个n×1结构体数组,其中N代表调用堆栈的深度。这个属性是只读的。有关更多信息,请参见调用堆栈

单元阵列的MException对象,MATLAB来创建这个异常引起的。使用addCause方法来添加一个例外导致的另一个例外。有关更多信息,请参见因为数组

方法

addCause 记录额外的异常的原因
getReport 获得异常的错误消息
去年 返回最后一个未捕获异常
重新抛出 重新抛出之前捕获异常
抛出异常
throwAsCaller 抛出异常,好像发生在调用函数

复制语义

价值。学习如何价值类影响复制操作,明白了复制对象在MATLAB文档。

例子

全部展开

是否=myComponent”添加:inputError;msgtext =输入没有预期的格式。;我= MException(是否msgtext)
myComponent我= MException属性:标识符:“添加:inputError”信息:输入没有预期的格式。因为:{}栈:[0×1 struct]
是否=MATLAB:测试的;msgtext =“这个页面有% d错误”;A1 = 10;我= MException(是否,msgtext A1)
我= MException属性:标识符:MATLAB:测试的信息:这个页面上有10个错误的原因:{}栈:[0×1 struct]

抛出一个异常,如果一个输入变量名在工作区中并不存在。

str =输入(的类型变量名:,“年代”);如果~存在(str,“var”)我= MException (MyComponent”添加:noSuchVariable,变量%年代未找到str);把(我)结束

在输入提示,输入任何工作区中不存在的变量。例如,输入notaVariable

变量notaVariable未找到

notVariable不存在在你的工作区,MATLAB创建一个MException对象,然后扔了它。

调用一个不存在的函数所产生的异常,notaFunction。如果函数没有定义,发出警告,并分配输出的值为0。

试一试一个= notaFunction (5、6);如果比较字符串(ME.identifier“MATLAB: UndefinedFunction”)警告(的函数定义。分配的值为0。);其他的重新抛出(我)结束结束
警告:函数定义。分配一个值为0。

本身调用notaFunction会导致错误。使用试一试,这段代码未定义的功能异常并把它作为一个警告,允许MATLAB继续执行后续命令。如果发现异常有不同的错误标识符,MATLAB重新抛出异常。

介绍了R2007b

这个主题有帮助吗?