Skip to main content
`Ctrl`+`K`

# PetscCallThrow

Checks error code, if non-zero it calls the C++ error handler which throws an exception

## Synopsis

    #include <petscsys.h>
    void PetscCallThrow(PetscErrorCode ierr)

Not Collective

## Input Parameter

- ierr - nonzero error code, see the list of standard error codes in include/petscerror.h

## Notes

Requires PETSc to be configured with clanguage of c++. Throws a std::runtime_error() on error.

Once the error handler throws the exception you can use `PetscCallVoid()` which returns without an error code (bad idea since the error is ignored) or `PetscCallAbort()` to have `MPI_Abort()` called immediately.

## See Also

`SETERRQ()`, `PetscCall()`, `SETERRABORT()`, `PetscCallAbort()`, `PetscTraceBackErrorHandler()`, `PetscPushErrorHandler()`, `PetscError()`, `CHKMEMQ`

## Level

beginner

## Location

include/petscerror.h

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages