| \section{The \texttt{VError} class} |
| |
| The \verb+VError+ class is the class thrown by the VIPS C++ API when an |
| error is detected. It is derived from \verb+std::exception+ in the usual way. |
| |
| \subsection{Constructors} |
| |
| There are two constructors for \verb+VError+: |
| |
| \begin{verbatim} |
| VError( std::string str ); |
| VError(); |
| \end{verbatim} |
| |
| The first form creates an error object initialised with the specified |
| string, the last form creates an empty error object. |
| |
| \subsection{Projection functions} |
| |
| A function gives access to the string held by \verb+VError+: |
| |
| \begin{verbatim} |
| const char *what(); |
| \end{verbatim} |
| |
| You can also send to an \verb+ostream+. |
| |
| \begin{verbatim} |
| std::ostream& operator<<( |
| std::ostream&, const error& ); |
| \end{verbatim} |
| |
| \subsection{Computing with \texttt{VError}} |
| |
| Two member functions let you append elements to an error: |
| |
| \begin{verbatim} |
| VError &app( std::string txt ); |
| VError &app( const int i ); |
| \end{verbatim} |
| |
| For example: |
| |
| \begin{verbatim} |
| VError wombat; |
| int n = 12; |
| |
| wombat.app( "possum: no more than " ). |
| app( n ).app( " elements\n" ); |
| throw( wombat ); |
| \end{verbatim} |
| |
| \noindent |
| will throw a \verb+VError+ with a diagnostic of: |
| |
| \begin{verbatim} |
| possum: no more than 12 elements |
| \end{verbatim} |
| |
| The member function \verb+perror()+ prints the error message to \verb+stdout+ |
| and exits with a code of 1. |
| |
| \begin{verbatim} |
| void perror( const char * ); |
| void perror(); |
| \end{verbatim} |
| |
| \subsection{Convenience function} |
| |
| The convenience function \verb+verror+ creates an \verb+VError+ with the |
| specified error string, and throws it. If you pass \verb+""+ for the string, |
| verror uses the contents of the VIPS error buffer instead. |
| |
| \begin{verbatim} |
| extern void verror( std::string str = "" ); |
| \end{verbatim} |