我有一个 Matlab 函数,它运行了几千行代码。在一定条件下,它正在破裂。我也可以调试代码并逐步运行。
所以,我尝试在 Matlab 中捕获块来处理错误。除此之外,是否可以捕获代码的行号。
例如 :
try
Error here <-----
catch err
disp(['Error occured on line No ' num2str(lineNo])
end
任何想法,如何实现?
尝试这个。这将打印出行号以及完整的堆栈。
try
%some code;
catch exc
getReport(exc, 'extended')
end
您也可以考虑使用
>> dbstop if error
在运行代码之前:这样当发生错误时,Matlab 会创建一个调试断点并允许您在错误处进行调试。
你可以这样尝试:
try
Error here <--------------
catch err
disp([err.identifier]);
disp([err.message]);
for e=1:length(err.stack)
disp(['Error in ' err.stack(e).file ' at line ' num2str(err.stack(e).line)]);
end
end
要打印行号,您可以使用以下命令:
printf(['Line number ' num2str(dbstack.line) '\n'])