libMesh
Public Member Functions | Public Attributes | List of all members
libMesh::PetscSolverException Class Reference

A specialization of the SolverException class for PETSc. More...

#include <petsc_solver_exception.h>

Inheritance diagram for libMesh::PetscSolverException:
[legend]

Public Member Functions

 PetscSolverException (int error_code_in)
 
virtual const char * what () const noexcept override
 Override the what() function to provide a generic error message. More...
 

Public Attributes

int error_code
 The error code generated by the solver. More...
 
std::string what_message
 string which holds the message built in the constructor. More...
 

Detailed Description

A specialization of the SolverException class for PETSc.

Definition at line 54 of file petsc_solver_exception.h.

Constructor & Destructor Documentation

◆ PetscSolverException()

libMesh::PetscSolverException::PetscSolverException ( int  error_code_in)
inline

Definition at line 57 of file petsc_solver_exception.h.

References libMesh::SolverException::error_code, and libMesh::SolverException::what_message.

57  :
58  SolverException(error_code_in)
59  {
60  const char * text;
61  char * specific;
62  // This is one scenario where we don't catch the error code
63  // returned by a PETSc function :)
64  PetscErrorMessage(error_code, &text, &specific);
65 
66  // Usually the "specific" error message string is more useful than
67  // the generic text corresponding to the error_code, since many
68  // SETERRQ calls just use error_code == 1
69  if (specific)
70  what_message = std::string(specific);
71  else if (text)
72  what_message = std::string(text);
73  }
SolverException(int error_code_in)
int error_code
The error code generated by the solver.
std::string what_message
string which holds the message built in the constructor.

Member Function Documentation

◆ what()

virtual const char* libMesh::SolverException::what ( ) const
inlineoverridevirtualnoexceptinherited

Override the what() function to provide a generic error message.

Definition at line 125 of file libmesh_exceptions.h.

References libMesh::SolverException::what_message.

126  {
127  // std::string::c_str() is noexcept in C++11, so it's safe to call
128  // in what() because it can't throw.
129  return what_message.c_str();
130  }
std::string what_message
string which holds the message built in the constructor.

Member Data Documentation

◆ error_code

int libMesh::SolverException::error_code
inherited

The error code generated by the solver.

Definition at line 135 of file libmesh_exceptions.h.

Referenced by PetscSolverException(), and libMesh::SolverException::SolverException().

◆ what_message

std::string libMesh::SolverException::what_message
inherited

string which holds the message built in the constructor.

Definition at line 140 of file libmesh_exceptions.h.

Referenced by PetscSolverException(), libMesh::SolverException::SolverException(), and libMesh::SolverException::what().


The documentation for this class was generated from the following file: