Use try/catch to Handle Errors
You can use a try/catch
statement to execute code after your
program encounters an error. try/catch
statements can be useful if
you:
Want to finish the program in another way that avoids errors
Need to clean up unwanted side effects of the error
Have many problematic input parameters or commands
Arrange try/catch
statements into blocks of code, similar to this
pseudocode:
try try block... catch catch block... end
try block
, MATLAB® skips any remaining commands in the try
block and
executes the commands in the catch block
. If no error occurs
within try block
, MATLAB skips the entire catch block
.For example, a try/catch
statement can prevent the need to throw
errors. Consider the combinations
function that returns the number of
combinations of k
elements from n
elements:
function com = combinations(n,k) com = factorial(n)/(factorial(k)*factorial(n-k)); end
MATLAB throws an error whenever k > n
. You cannot construct
a set with more elements, k
, than elements you possess,
n
. Using a try/catch statement, you can avoid the error and
execute this function regardless of the order of
inputs:
function com = robust_combine(n,k) try com = factorial(n)/(factorial(k)*factorial(n-k)); catch com = factorial(k)/(factorial(n)*factorial(k-n)); end end
robust_combine
treats any order of integers as valid
inputs:C1 = robust_combine(8,4) C2 = robust_combine(4,8)
C1 = 70 C2 = 70
Optionally, you can capture more information about errors if a variable follows your
catch
statement:
catch MExc
MExc
is an
MException
class object that contains more information about the
thrown error. To learn more about accessing information from
MException
objects, see Exception Handling in a MATLAB Application.