Adn*_*nan 18 error-handling matlab
我有一个matlab脚本,调用各种其他功能.我正在以下列方式处理可能的错误
try
matStart(MatObj);
catch err
msgbox('Error in Processing Figures!','Error!','error','modal');
fprintf(2,err.message);
sprintf('\n');
display(err.message);
end
Run Code Online (Sandbox Code Playgroud)
正如您可能猜到的,这会打印导致异常的错误.但这只会打印导致错误的第一个函数.我希望将整个错误堆栈显示到导致错误发生的最后一个嵌套函数.可以做到吗?
law*_*low 20
是的,您正在寻找的功能是" getReport ".你会想要'扩展'报告.
使用getReport,您的代码将如下所示
try
matStart(MatObj);
catch err
msgbox('Error in Processing Figures!','Error!','error','modal');
disp(getReport(err,'extended'));
end
Run Code Online (Sandbox Code Playgroud)
这将在matlab中显示与未捕获的异常相同的信息,该异常打印完整的堆栈跟踪,当然文本不会是红色.
继@thewopr的回答之后,如果您希望将错误堆栈打印到"标准错误"输出流,可以将文本打印为红色,如下所示:
...
fprintf(2, '%s\n', getReport(err, 'extended'));
...
Run Code Online (Sandbox Code Playgroud)