您可以用isvalid
檢查handle
的有效性。你應該循環你的手柄,檢查它們的有效性,如果有效的話關閉它們;你應該也可以在那裏找到一個try...catch
,這是很好的措施。例如:
function figure1_DeleteFcn(hObject, eventdata, handles)
errList = [];
for nHndl = 1:length(handles.myHandles)
if isvalid(handles.myHandles(nHndl))
try
delete(handles.myHandles(nHndl));
catch err
errList = [errList err];
end
end
end
if length(errList) == 1
error([mfilename ':ErrorClosingUI'], 'Error closing UI : %s', errList.message);
elseif length(errList) > 1
% Should probably do something smarter with the error messages here
error([mfilename ':ErrorClosingUI'], 'Multiple errors occurred closing UI');
end