我尝试检查输入参数是否属于特定类型,并抛出错误消息,如:
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;
类似的内容:
答案 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
字段留空,它就不会显示堆栈中指定的行。
一种可能的解决方法可能是fprintf
和return
的组合,由Undocumented MATLAB提供:
function test(input)
if ~ischar(input)
fprintf(2, '%s is invalid input type.\n', class(input));
return
end
end
根据此检查在实际功能中的位置,您可能需要了解其退出方式,因为return
仅会将您踢回调用功能。可能会输出True
/ False
标志?