handleError - generic error-handling function

A general-purpose error-handling function with an ability to register automatic cleanup actions
Updated 24 May 2007

No License

handleError is a general-purpose error-handling function. The user can register cleanup actions that will automatically be activated in case of error. If an error occurred and handleError is called, then a hyper-linked stack-trace is displayed in the command window.

ERRMSG = handleError
ACTIONIDX = handleError('register',ACTION)
ERRMSG = handleError('unregister',ACTIONIDX)

ACTIONIDX = handleError('register',ACTION) will register cleanup actions to be performed in case of error. ACTION may be a single string (e.g., 'msgbox(lasterr)') or a cell array with arguments for the sprintf function (e.g., {'set(%.19g,''Pointer'',''arrow'')',gcf}). The returned ACTIONIDX is the sequential cleanup action index.

ERRMSG = handleError('unregister',ACTIONIDX) will perform and unregister cleanup action(s) ACTIONIDX. The returned ERRMSG is the last error msg.

ERRMSG = handleError; will automatically perform and unregister any registered cleanup actions. Then, the last error message will be displayed in the Command Window, followed by a hyper-linked stack trace of that error. This format is the one that should be used within catch blocks (see Example):

. cleanups(1)=handleError('register',{'set(%.19g,''Pointer'',''arrow'')',gcf});
. cleanups(2)=handleError('register','disp(''finished processing!'')');
. set(gcf,'Pointer','watch'); drawnow;
. ... some complex computation ...
. handleError('unregister',cleanups); %eval & unregister cleanup actions
. handleError; %display error stack; eval & unregister cleanup actions

Created on Matlab 7, but should work on earlier versions too. Please report any issues to altmany (at) gmail dot com.

Cite As

Yair Altman (2024). handleError - generic error-handling function (https://www.mathworks.com/matlabcentral/fileexchange/15059-handleerror-generic-error-handling-function), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14SP3
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Scope Variables and Generate Names in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

updated description text