2

我有一个 Matlab 函数,它运行了几千行代码。在一定条件下,它正在破裂。我也可以调试代码并逐步运行。

所以,我尝试在 Matlab 中捕获块来处理错误。除此之外,是否可以捕获代码的行号。

例如 :

try
 Error here <-----
catch err
disp(['Error occured on line No ' num2str(lineNo])
end

任何想法,如何实现?

4

4 回答 4

4

尝试这个。这将打印出行号以及完整的堆栈。

try
    %some code;
catch exc
    getReport(exc, 'extended')
end
于 2013-05-09T02:58:50.837 回答
2

您也可以考虑使用

>> dbstop if error

在运行代码之前:这样当发生错误时,Matlab 会创建一个调试断点并允许您在错误处进行调试。

于 2013-05-09T06:05:31.353 回答
0

你可以这样尝试:

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
于 2014-10-30T10:09:22.583 回答
0

要打印行号,您可以使用以下命令:

printf(['Line number ' num2str(dbstack.line) '\n'])

于 2017-06-12T12:56:39.307 回答