MATLAB: OnCleanup – do different things based on how you entered it.

catchctrl-cMATLABoncleanup

Hi, I've got a function where we want to run some code if there is an error, or a Ctl-C, but not if the function exits normally.
If I use try/catch, then Ctl-C doesn't end up in the catch. If I define an onCleanup, then it executes when the function exists normally (which we don't want).
Can you think of a way to handle this situation? Maybe using DBSTACK in the onCleanup to determine how it was entered or something…
Thanks, Eric

Best Answer

Share a variable with the cleanup routine. Set the variable differently if the routine is exiting normally. Have the cleanup routine test the variable.