如何捕获语法错误?

时间:2015-10-01 19:08:00

标签: matlab

如果我使用foo.m运行以下run('foo.m')文件:

try
    disp(r3)
catch ME
    disp('Exception handling.')
end

我正确地得到了:

Exception handling.

但是,如果我将disp(r3)替换为disp('foo' 1),那么我得到:

Error: File: C:\Users\Pedro\Desktop\foo.m Line: 23 Column: 16
Unexpected MATLAB expression.

Error in run (line 96)
evalin('caller', [script ';']);

为什么我没有使用catch ME发现此错误?我怎么能抓住它?

1 个答案:

答案 0 :(得分:4)

文件中出现语法错误,而不是单行代码被破坏,整个文件被破坏,因为无法解析。 Matlab将拒绝“理解”您在foo.m中编写的任何代码,包括您的try / catch。你必须将try / catch编写成另一个调用foo.m

的函数
try
    foo()
catch ME
    disp('Exception handling.')
end

由于matlab解释器会在不运行代码的情况下突出显示所有语法错误,因此通常无需在运行时检查语法错误。