Matlabの実行時に警告が出た際に別の処理をしたいと思ったが、
普通の例外処理(try、catch)はエラーのみにしか使えない。
例えば、addpathコマンドを使用して検索フォルダに任意の
パスを追加する場合、記載したパスがそもそも存在しなかった
ケースを検知して別の処理に移行したい。
そこで、警告が出たことを別の方法で検知しようと考えた。
[方法]
latwarn(最後に出た警告内容)を利用
[詳細]
clear all; % ワークスペースからアイテムを削除
lastwarn(''); % 最後に出た警告の内容をリセット
crnt = pwd; % カレントフォルダを格納
% 以下フォルダを検索対象に追加
addpath(strcat(crnt, 'folder_A'));
addpath(strcat(crnt, 'folder_B'));
addpath(strcat(crnt, 'folder_C'));
[msg, msgID] = lastwarn; % 最後に出た警告の内容を格納
if strcmp(msgID, 'MATLAB:dispatcher:pathWarning')
% 警告が出た時に実施したい処理を記述
else
% 警告が出なかった時に実施したい処理を記述
end