[petsc-users] Correct usage of CHKERRXX

Cedric Doucet cedric.doucet at inria.fr
Fri Aug 8 07:29:12 CDT 2014


Hi Karl,

thank you very much for your answer!
I will implement a wrapper for handling petsc error codes using the html page you mention.

Have a nice day!

Cédric



----- Mail original -----
> De: "Karl Rupp" <rupp at iue.tuwien.ac.at>
> À: "Cedric Doucet" <cedric.doucet at inria.fr>, petsc-users at mcs.anl.gov
> Envoyé: Vendredi 8 Août 2014 14:16:25
> Objet: Re: [petsc-users] Correct usage of CHKERRXX
> 
> Hi Cedric,
> 
>  > I need to call several functions from Petsc in a C++ code.
> > I would like to handle manage errors from Petsc with exceptions.
> >
> > In Petsc's documentation, I found that there exists a macro to do that :
> > CHKERRXX.
> >
> > How does it work?
> 
> It checks for a nonzero error code and returns from the function
> immediately if that is the case. Have a look at the implementation here:
> http://www.mcs.anl.gov/petsc/petsc-3.5/include/petscerror.h.html
> 
> > Which kind of exception does it throw in case of failure?
> > Do you inherit from std::exception?
> > Is there an exception for each error code?
> 
> Neither. You would have to write your own wrapper around it, translating
> the error codes into exceptions. PETSc cannot use exceptions since it is
> a C library. Some people also argue against exceptions because they tend
> to bloat the executable for all the roll-back code.
> 
> Best regards,
> Karli
> 
> 


More information about the petsc-users mailing list