Subversion 1.6.16
|
SVN error creation and destruction. More...
Defines | |
#define | svn_error_create (svn_error__locate(__FILE__,__LINE__), (svn_error_create)) |
Wrapper macro to collect file and line information. | |
#define | svn_error_createf (svn_error__locate(__FILE__,__LINE__), (svn_error_createf)) |
Wrapper macro to collect file and line information. | |
#define | svn_error_wrap_apr (svn_error__locate(__FILE__,__LINE__), (svn_error_wrap_apr)) |
Wrapper macro to collect file and line information. | |
#define | svn_error_quick_wrap (svn_error__locate(__FILE__,__LINE__), (svn_error_quick_wrap)) |
Wrapper macro to collect file and line information. | |
#define | SVN_ERR(expr) |
A statement macro for checking error values. | |
#define | SVN_ERR_W(expr, wrap_msg) |
A statement macro, very similar to SVN_ERR . | |
#define | SVN_INT_ERR(expr) |
A statement macro, similar to SVN_ERR , but returns an integer. | |
Functions | |
svn_error_t * | svn_error_create (apr_status_t apr_err, svn_error_t *child, const char *message) |
Create a nested exception structure. | |
svn_error_t * | svn_error_createf (apr_status_t apr_err, svn_error_t *child, const char *fmt,...) |
Create an error structure with the given apr_err and child, with a printf-style error message produced by passing fmt, using apr_psprintf(). | |
svn_error_t * | svn_error_wrap_apr (apr_status_t status, const char *fmt,...) |
Wrap a status from an APR function. | |
svn_error_t * | svn_error_quick_wrap (svn_error_t *child, const char *new_msg) |
A quick n' easy way to create a wrapped exception with your own message, before throwing it up the stack. | |
svn_error_t * | svn_error_compose_create (svn_error_t *err1, svn_error_t *err2) |
Compose two errors, returning the composition as a brand new error and consuming the original errors. | |
void | svn_error_compose (svn_error_t *chain, svn_error_t *new_err) |
Add new_err to the end of chain's chain of errors. | |
svn_error_t * | svn_error_root_cause (svn_error_t *err) |
Return the root cause of err by finding the last error in its chain (e.g. | |
svn_error_t * | svn_error_dup (svn_error_t *err) |
Create a new error that is a deep copy of err and return it. | |
void | svn_error_clear (svn_error_t *error) |
Free the memory used by error, as well as all ancestors and descendants of error. | |
void | svn_handle_error2 (svn_error_t *error, FILE *stream, svn_boolean_t fatal, const char *prefix) |
Very basic default error handler: print out error stack error to the stdio stream stream, with each error prefixed by prefix; quit and clear error iff the fatal flag is set. | |
void | svn_handle_error (svn_error_t *error, FILE *stream, svn_boolean_t fatal) |
Like svn_handle_error2() but with prefix set to "svn: ". | |
void | svn_handle_warning2 (FILE *stream, svn_error_t *error, const char *prefix) |
Very basic default warning handler: print out the error error to the stdio stream stream, prefixed by prefix. | |
void | svn_handle_warning (FILE *stream, svn_error_t *error) |
Like svn_handle_warning2() but with prefix set to "svn: ". |
SVN error creation and destruction.
#define SVN_ERR | ( | expr | ) |
do { \ svn_error_t *svn_err__temp = (expr); \ if (svn_err__temp) \ return svn_err__temp; \ } while (0)
A statement macro for checking error values.
Evaluate expr. If it yields an error, return that error from the current function. Otherwise, continue.
The do { ... } while (0)
wrapper has no semantic effect, but it makes this macro syntactically equivalent to the expression statement it resembles. Without it, statements like
if (a) SVN_ERR (some operation); else foo;
would not mean what they appear to.
Definition at line 274 of file svn_error.h.
#define SVN_ERR_W | ( | expr, | |
wrap_msg | |||
) |
do { \ svn_error_t *svn_err__temp = (expr); \ if (svn_err__temp) \ return svn_error_quick_wrap(svn_err__temp, wrap_msg); \ } while (0)
A statement macro, very similar to SVN_ERR
.
This macro will wrap the error with the specified text before returning the error.
Definition at line 287 of file svn_error.h.
#define SVN_INT_ERR | ( | expr | ) |
do { \ svn_error_t *svn_err__temp = (expr); \ if (svn_err__temp) { \ svn_handle_error2(svn_err__temp, stderr, FALSE, "svn: "); \ svn_error_clear(svn_err__temp); \ return EXIT_FAILURE; } \ } while (0)
A statement macro, similar to SVN_ERR
, but returns an integer.
Evaluate expr. If it yields an error, handle that error and return EXIT_FAILURE
.
Definition at line 300 of file svn_error.h.
void svn_error_clear | ( | svn_error_t * | error | ) |
Free the memory used by error, as well as all ancestors and descendants of error.
Unlike other Subversion objects, errors are managed explicitly; you MUST clear an error if you are ignoring it, or you are leaking memory. For convenience, error may be NULL
, in which case this function does nothing; thus, svn_error_clear(svn_foo(...)) works as an idiom to ignore errors.
void svn_error_compose | ( | svn_error_t * | chain, |
svn_error_t * | new_err | ||
) |
Add new_err to the end of chain's chain of errors.
The new_err chain will be copied into chain's pool and destroyed, so new_err itself becomes invalid after this function.
svn_error_t* svn_error_compose_create | ( | svn_error_t * | err1, |
svn_error_t * | err2 | ||
) |
Compose two errors, returning the composition as a brand new error and consuming the original errors.
Either or both of err1 and err2 may be SVN_NO_ERROR
. If both are not SVN_NO_ERROR
, err2 will follow err1 in the chain of the returned error.
svn_error_t* svn_error_create | ( | apr_status_t | apr_err, |
svn_error_t * | child, | ||
const char * | message | ||
) |
Create a nested exception structure.
Input: an APR or SVN custom error code, a "child" error to wrap, a specific message
Returns: a new error structure (containing the old one).
NULL
if there is nothing to add to the general message associated with the error code.If creating the "bottommost" error in a chain, pass NULL
for the child argument.
svn_error_t* svn_error_dup | ( | svn_error_t * | err | ) |
Create a new error that is a deep copy of err and return it.
svn_error_t* svn_error_quick_wrap | ( | svn_error_t * | child, |
const char * | new_msg | ||
) |
A quick n' easy way to create a wrapped exception with your own message, before throwing it up the stack.
(It uses all of the child's fields.)
svn_error_t* svn_error_root_cause | ( | svn_error_t * | err | ) |
Return the root cause of err by finding the last error in its chain (e.g.
it or its children). err may be SVN_NO_ERROR
, in which case SVN_NO_ERROR
is returned.
svn_error_t* svn_error_wrap_apr | ( | apr_status_t | status, |
const char * | fmt, | ||
... | |||
) |
Wrap a status from an APR function.
If fmt is NULL, this is equivalent to svn_error_create(status,NULL,NULL). Otherwise, the error message is constructed by formatting fmt and the following arguments according to apr_psprintf(), and then appending ": " and the error message corresponding to status. (If UTF-8 translation of the APR error message fails, the ": " and APR error are not appended to the error message.)
void svn_handle_error | ( | svn_error_t * | error, |
FILE * | stream, | ||
svn_boolean_t | fatal | ||
) |
Like svn_handle_error2() but with prefix
set to "svn: ".
void svn_handle_error2 | ( | svn_error_t * | error, |
FILE * | stream, | ||
svn_boolean_t | fatal, | ||
const char * | prefix | ||
) |
Very basic default error handler: print out error stack error to the stdio stream stream, with each error prefixed by prefix; quit and clear error iff the fatal flag is set.
Allocations are performed in the error's pool.
If you're not sure what prefix to pass, just pass "svn: ". That's what code that used to call svn_handle_error() and now calls svn_handle_error2() does.
void svn_handle_warning | ( | FILE * | stream, |
svn_error_t * | error | ||
) |
Like svn_handle_warning2() but with prefix
set to "svn: ".
void svn_handle_warning2 | ( | FILE * | stream, |
svn_error_t * | error, | ||
const char * | prefix | ||
) |
Very basic default warning handler: print out the error error to the stdio stream stream, prefixed by prefix.
Allocations are performed in the error's pool.