#include <petscsys.h> PetscErrorCode CHKERRQ(PetscErrorCode ierr)Not Collective
Experienced users can set the error handler with PetscPushErrorHandler().
CHKERRQ(ierr) is fundamentally a macro replacement for if (ierr) return(PetscError(...,ierr,...));
Although typical usage resembles "void CHKERRQ(PetscErrorCode)" as described above, for certain uses it is highly inappropriate to use it in this manner as it invokes return(PetscErrorCode). In particular, it cannot be used in functions which return(void) or any other datatype. In these types of functions, you can use CHKERRV() which returns without an error code (bad idea since the error is ignored or if (ierr) {PetscError(....); return(YourReturnType);} where you may pass back a NULL to indicate an error. You can also call CHKERRABORT(comm,n) to have MPI_Abort() returned immediately.