主要内容

throwAsCaller

抛出异常,就好像在调用函数中发生一样

描述

例子

throwAsCaller (异常抛出异常,就好像它发生在调用函数中一样。异常将终止当前运行的函数,并将控制权返回给键盘或外围控件块。当你从try / catch声明,MATLAB®在命令窗口中显示错误信息。

您可以访问MException对象通过一个try / catch声明或MException.last函数。

有时,对于错误来说,指向导致异常的调用函数中的位置比指向实际抛出异常的函数更有用。您可以使用throwAsCaller简化错误显示。

例子

全部折叠

创建一个函数,sayHello,在您的工作文件夹中。

函数sayHello(N) checkInput(N) str = [“你好,”N“!”];disp (str)函数checkInput (N)如果~ischar(N) ME = MException(“sayHello: inputError”'Input must be char.');把(我)结束

在命令提示符处,调用带有数字输入的函数。

sayHello (42)
使用sayHello>checkInput(第9行)时出错。错误在sayHello(第2行)checkInput(N)

栈的顶部指的是第9行,因为这是MATLAB抛出异常的地方。在初始堆栈帧之后,MATLAB显示来自调用函数的信息。

取代把(我)throwAsCaller(我)的第9行sayHello.m并再次调用该函数。

sayHello (42)
使用sayHello时出错(第2行)。

栈顶指的是第2行,因为这是调用函数中错误的位置。

输入参数

全部折叠

异常,包含错误的原因和位置,指定为标量MException对象。

介绍了R2007b