Why does the Code Analyzer flag this as an error?
조회 수: 8 (최근 30일)
이전 댓글 표시
Why does the Code Analyzer flag this code as an error? It runs fine:

try
error("It's bad")
catch ME
warning('Error in code: %s', ME.message);
end
댓글 수: 0
채택된 답변
추가 답변 (1개)
dpb
2025년 2월 27일
이동: dpb
2025년 2월 27일
Having warning() inside the catch clause is the problem -- the catch clause is executed only when an error condition exists and mixing that up with trying to issue a warning is sorta' like double jeopardy and mlint doesn't like it...
Just output any additional message with disp or fprintf, don't try to throw a warning there...
try
error("It's bad")
catch ME
fprintf('Error in code: \n%s\n',ME.message);
end
shows no error or warning.
댓글 수: 2
dpb
2025년 2월 27일
편집: dpb
2025년 2월 27일
The suggested solution doesn't work(*) when the warning is inside the catch block, either...I believe the authors of mlint never thought of nor tested the case.
It's probably worth an enhancement/bug report...
(*) Actually, on further exploration using the other format string argument does convert the mlint error into a warning although it may take moving around in the file some first before the red line is replaced by the orange one. You then get a warning that the number of output items may not match the format specification. Either way, there isn't an actual syntax error in the warning statement per se, just a picky mlint false positive, I think.
참고 항목
카테고리
Help Center 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
