matlab - 抑制错误消息回溯

时间:2015-06-30 22:30:44

标签: matlab error-handling

我尝试检查输入参数是否属于特定类型,并抛出错误消息,如:

function test(input)
    if ~ischar(input)
        error('%s is invalid input type.', class(input));
    end
end

但Matlab显示错误消息backtrace - 信息:

>> test(1)
Error using test (line 3)
double is invalid input type.

如何关闭Error using test (line 3)行?

我正在使用off backtrace warning寻找与warning off backtrace;类似的内容:

1 个答案:

答案 0 :(得分:2)

我不确定你能不能。我得到的最接近的是定义我自己的错误结构:

testerr.message = 'test';
testerr.identifier = '';
testerr.stack.file = '';
testerr.stack.name = 'Test Thing';
testerr.stack.line = 1;

error(testerr)

返回:

Error using Test Thing
test

只要将file字段留空,它就不会显示堆栈中指定的行。

一种可能的解决方法可能是fprintfreturn的组合,由Undocumented MATLAB提供:

function test(input)
    if ~ischar(input)
        fprintf(2, '%s is invalid input type.\n', class(input));
        return
    end
end

根据此检查在实际功能中的位置,您可能需要了解其退出方式,因为return仅会将您踢回调用功能。可能会输出True / False标志?