77 lines
1.7 KiB
TeX
77 lines
1.7 KiB
TeX
\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}
|