如果我使用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
发现此错误?我怎么能抓住它?
答案 0 :(得分:4)
文件中出现语法错误,而不是单行代码被破坏,整个文件被破坏,因为无法解析。 Matlab将拒绝“理解”您在foo.m
中编写的任何代码,包括您的try / catch。你必须将try / catch编写成另一个调用foo.m
try
foo()
catch ME
disp('Exception handling.')
end
由于matlab解释器会在不运行代码的情况下突出显示所有语法错误,因此通常无需在运行时检查语法错误。