Try-Catch clause fails in evalin
3 次查看(过去 30 天)
显示 更早的评论
Wondering if someone knows why try-catch syntax fail to work inside an evalin('caller',expression)? Are there any workarounds? Additionally, the following doesn't work, although I kind of expected it to.
try
evalin('caller',expression1);
catch E
evalin('caller',expression2);
end
My reason for even wanting to use these horrible statements (bad code practice) is to write a save function wrapper that by default picks faster compressionless saves unless it fails (usually for reasons of file size for compressionless save). And of course variables for the save() process are in the calling workspace.
2 个评论
回答(1 个)
Walter Roberson
2017-11-30
It does appear to generally work:
>> try; evalin('base','fooor'); catch ME; disp('caught'); end
caught
However, there are some errors that cannot be caught, including running out of memory and exceeding the recursion limit.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Scope Variables and Generate Names 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!