Subversion
|
SVN error creation and destruction. More...
Macros | |
#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__locate (__FILE__, __LINE__) |
Create a nested exception structure. | |
svn_error_t | svn_error_create (apr_status_t apr_err, svn_error_t *child, const char *message) |
svn_error_t | svn_error_createf (apr_status_t apr_err, svn_error_t *child, const char *fmt,...) |
svn_error_t | svn_error_wrap_apr (apr_status_t status, const char *fmt,...) |
svn_error_t | svn_error_quick_wrap (svn_error_t *child, const char *new_msg) |
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 | ) |
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
would not mean what they appear to.
Definition at line 274 of file svn_error.h.
#define SVN_ERR_W | ( | expr, | |
wrap_msg | |||
) |
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 | ) |
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.
svn_error_t * svn_error__locate | ( | __FILE__ | , |
__LINE__ | |||
) |
Create a nested exception structure.
A quick n' easy way to create a wrapped exception with your own message, before throwing it up the stack.
Wrap a status from an APR function.
Create an error structure with the given apr_err and child, with a printf-style error message produced by passing fmt, using apr_psprintf().
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.
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.)
(It uses all of the child's fields.)
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_dup | ( | svn_error_t * | err | ) |
Create a new error that is a deep copy of err and return it.
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.
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.