This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Rethrow previously caught exception





rethrow(exception) rethrows a previously caught exception, exception. MATLAB® typically responds to errors by terminating the currently running program. However, you can use a try/catch block to catch the exception. This interrupts the program termination so you can execute your own error handling procedures. To terminate the program and redisplay the exception, end the catch block with a rethrow statement.

rethrow handles the stack trace differently from error, assert, and throw. Instead of creating the stack from where MATLAB executes the function, rethrow preserves the original exception information and enables you to retrace the source of the original error.


collapse all

Cause MATLAB to throw an error by calling surf with no inputs. Catch the exception, display the error identifier, and rethrow the exception.

catch ME
    disp(['ID: ' ME.identifier])
ID: MATLAB:narginchk:notEnoughInputs
Error using surf (line 49)
Not enough input arguments.

Create a function, combineArrays, in your working folder.

function C = combineArrays(A,B)
    C = catAlongDim1(A,B);       % Line 3
catch exception
    throw(exception)             % Line 5

function V = catAlongDim1(V1,V2)
V = cat(1,V1,V2);                % Line 10

Call the combineArrays function with arrays of different sizes.

A = 1:5;
B = 1:4;

Error using combineArrays (line 5)
Dimensions of matrices being concatenated are not consistent.

The stack refers to line 5 where MATLAB throws the exception.

Replace throw(exception) with rethrow(exception) on line 5 of the combineArrays function, and call the function again.

Error using cat
Dimensions of matrices being concatenated are not consistent.

Error in combineArrays>catAlongDim1 (line 10)
V = cat(1,V1,V2);                % Line 10

Error in combineArrays (line 3)
    C = catAlongDim1(A,B);       % Line 3

The rethrow function maintains the original stack and indicates the error is on line 3.

Input Arguments

collapse all

Exception containing the cause and location of an error, specified as a scalar MException object.

Introduced in R2007b