petsc-3.7.3 2016-07-24
Report Typos and Errors

# PetscPushErrorHandler

Sets a routine to be called on detection of errors.

### Synopsis

    #include "petscsys.h"
    PetscErrorCode  PetscPushErrorHandler(PetscErrorCode (*handler)(MPI_Comm comm,int,const char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*),void *ctx)

Not Collective

### Input Parameters

| handler | - error handler routine
| ctx | - optional handler context that contains information needed by the handler (for example file pointers for error messages etc.)

### Calling sequence of handler

       int handler(MPI_Comm comm,int line,char *func,char *file,PetscErrorCode n,int p,char *mess,void *ctx);

| comm | - communicator over which error occured
| line | - the line number of the error (indicated by __LINE__)
| func | - the function where the error occured (indicated by __FUNCT__)
| file | - the file in which the error was detected (indicated by __FILE__)
| n | - the generic error number (see list defined in include/petscerror.h)
| p | - PETSC_ERROR_INITIAL if error just detected, otherwise PETSC_ERROR_REPEAT
| mess | - an error text string, usually just printed to the screen
| ctx | - the error handler context

### Options Database Keys

| -on_error_attach_debugger <noxterm,gdb or dbx> | - - -on_error_abort

### Notes

The currently available PETSc error handlers include PetscTraceBackErrorHandler(), PetscAttachDebuggerErrorHandler(), PetscAbortErrorHandler(), and PetscMPIAbortErrorHandler(), PetscReturnErrorHandler().

Fortran Notes: You can only push one error handler from Fortran before poping it.

### See Also

PetscPopErrorHandler(), PetscAttachDebuggerErrorHandler(), PetscAbortErrorHandler(), PetscTraceBackErrorHandler(), PetscPushSignalHandler()

Level:intermediate
Location: src/sys/error/err.c
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/ksp/ksp/examples/tutorials/ex27.c.html