error

error — error messages and error handling

Stability Level

Stable, unless otherwise indicated

Synopsis

#include <vips/vips.h>

const char *        vips_error_buffer                   (void);
void                vips_error_clear                    (void);
void                vips_error_freeze                   (void);
void                vips_error_thaw                     (void);
void                vips_error                          (const char *domain,
                                                         const char *fmt,
                                                         ...);
void                vips_verror                         (const char *domain,
                                                         const char *fmt,
                                                         va_list ap);
void                vips_error_system                   (int err,
                                                         const char *domain,
                                                         const char *fmt,
                                                         ...);
void                vips_verror_system                  (int err,
                                                         const char *domain,
                                                         const char *fmt,
                                                         va_list ap);
void                vips_error_g                        (GError **error);
void                vips_warn                           (const char *domain,
                                                         const char *fmt,
                                                         ...);
void                vips_vwarn                          (const char *domain,
                                                         const char *fmt,
                                                         va_list ap);
void                vips_info                           (const char *domain,
                                                         const char *fmt,
                                                         ...);
void                vips_vinfo                          (const char *domain,
                                                         const char *fmt,
                                                         va_list ap);
void                vips_error_exit                     (const char *fmt,
                                                         ...);
int                 vips_check_uncoded                  (const char *domain,
                                                         VipsImage *im);
int                 vips_check_coding                   (const char *domain,
                                                         VipsImage *im,
                                                         VipsCoding coding);
int                 vips_check_coding_known             (const char *domain,
                                                         VipsImage *im);
int                 vips_check_coding_noneorlabq        (const char *domain,
                                                         VipsImage *im);
int                 vips_check_coding_same              (const char *domain,
                                                         VipsImage *im1,
                                                         VipsImage *im2);
int                 vips_check_mono                     (const char *domain,
                                                         VipsImage *im);
int                 vips_check_bands                    (const char *domain,
                                                         VipsImage *im,
                                                         int bands);
int                 vips_check_bands_1or3               (const char *domain,
                                                         VipsImage *in);
int                 vips_check_bands_atleast            (const char *domain,
                                                         VipsImage *im,
                                                         int bands);
int                 vips_check_bands_1orn               (const char *domain,
                                                         VipsImage *im1,
                                                         VipsImage *im2);
int                 vips_check_bands_1orn_unary         (const char *domain,
                                                         VipsImage *im,
                                                         int n);
int                 vips_check_bands_same               (const char *domain,
                                                         VipsImage *im1,
                                                         VipsImage *im2);
int                 vips_check_bandno                   (const char *domain,
                                                         VipsImage *im,
                                                         int bandno);
int                 vips_check_int                      (const char *domain,
                                                         VipsImage *im);
int                 vips_check_uint                     (const char *domain,
                                                         VipsImage *im);
int                 vips_check_uintorf                  (const char *domain,
                                                         VipsImage *im);
int                 vips_check_noncomplex               (const char *domain,
                                                         VipsImage *im);
int                 vips_check_complex                  (const char *domain,
                                                         VipsImage *im);
int                 vips_check_format                   (const char *domain,
                                                         VipsImage *im,
                                                         VipsBandFormat fmt);
int                 vips_check_u8or16                   (const char *domain,
                                                         VipsImage *im);
int                 vips_check_8or16                    (const char *domain,
                                                         VipsImage *im);
int                 vips_check_u8or16orf                (const char *domain,
                                                         VipsImage *im);
int                 vips_check_format_same              (const char *domain,
                                                         VipsImage *im1,
                                                         VipsImage *im2);
int                 vips_check_size_same                (const char *domain,
                                                         VipsImage *im1,
                                                         VipsImage *im2);
int                 vips_check_vector_length            (const char *domain,
                                                         int n,
                                                         int len);
int                 vips_check_vector                   (const char *domain,
                                                         int n,
                                                         VipsImage *im);
int                 vips_check_hist                     (const char *domain,
                                                         VipsImage *im);
int                 vips_check_matrix                   (const char *domain,
                                                         VipsImage *im,
                                                         VipsImage **out);
int                 vips_check_imask                    (const char *domain,
                                                         INTMASK *mask);
int                 vips_check_dmask                    (const char *domain,
                                                         DOUBLEMASK *mask);
int                 vips_check_dmask_1d                 (const char *domain,
                                                         DOUBLEMASK *mask);

Description

VIPS maintains an error buffer (a log of localised text messages), a set of functions for adding messages, and a way to access and clear the buffer.

The error buffer is global, that is, it is shared between all threads. You can add to the buffer from any thread (there is a lock to prevent corruption), but it's sensible to only read and clear the buffer from the main thread of execution.

The general principle is: if you detect an error, log a message for the user. If a function you call detects an error, just propogate it and don't add another message.

1
2
3
4
5
6
7
8
9
10
11
12
13
14