文档

throwAsCaller

类:MException

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

语法

throwAsCaller(异常)

描述

throwAsCaller (异常抛出异常,就像在调用函数中发生一样。该异常终止当前正在运行的函数,并将控制权返回给键盘或封闭函数块。抛出异常时try / catch声明,MATLAB®在命令窗口中显示错误消息。

您可以访问MException对象try / catch声明或MException.last方法。

在某些情况下,错误指向调用函数中导致异常的位置比指向实际抛出异常的函数更有意义。你可以用throwAsCaller简化错误显示。

输入参数

全部展开

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

例子

全部展开

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

函数sayHello(N) checkInput(N) str = [“你好,”N“!”];disp (str)函数checkInput (N)如果~ischar(N) ME = MException(“sayHello: inputError”“输入必须是字符。”);把(我)结束

在命令提示符处,使用数字输入调用该函数。

sayHello (42)
使用sayHello>checkInput出错(第9行)输入必须是char。sayHello(第2行)出错

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

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

sayHello (42)
使用sayHello出错(第2行)输入必须是char。

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

在R2007b中引入

这个话题有帮助吗?