Description Usage Arguments Value Examples
The functions composerr()
, composerr_()
and composerr_parent()
modify error handlers by
appending character strings to the error messages of the error handling
functions:
composerr()
uses non-standard evaluation.
composerr_()
is the standard evaluation alternative of composerr()
.
composerr_parent()
is a wrapper of composerr()
, defining the parent
environment as the lookup environment of the err_handler
.
This function looks up the prior error handling function in the parent
environment of the current environment and allows you to store
the modified error handling function under the same name as the
error handling function from the parent environment without running into
recursion issues.
This is especially useful when doing error handling
in nested environments (e.g. checking nested list objects) and you don not
want to use different names for the error handling functions in the
nested levels.
If you don't have a nested environment situation, better use
composerr()
or composerr_()
.
1 2 3 4 5 6 7 8 | composerr_(text_1 = NULL, err_prior = NULL, text_2 = NULL,
sep_1 = ": ", sep_2 = ": ", env_prior = parent.frame())
composerr(text_1 = NULL, err_prior = NULL, text_2 = NULL,
sep_1 = ": ", sep_2 = ": ", env_prior = parent.frame())
composerr_parent(text_1 = NULL, err_prior = NULL, text_2 = NULL,
sep_1 = ": ", sep_2 = ": ", env_prior = parent.frame())
|
text_1 |
A character string, which will be appended
at the beginning of the error message. The argument |
err_prior |
There are three valid types:
|
text_2 |
A character string, which will be appended
at the end of the error message. The argument |
sep_1 |
A character string that is used as separator for the
concatenation of |
sep_2 |
A character string that is used as separator for the
concatenation of |
env_prior |
An environment where the error handling function given in
|
A new error handling function that has an extended error message.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | ## Not run:
# ------ composerr_ in flat situation ----------
# -- create a modified error handler in the same scope --
# check if variable 'obj' exists and holds value TRUE
obj <- FALSE
# original error handler
err_h <- composerr_("Something is wrong with obj")
if (!exists("obj"))
err_h("obj does not exist")
# create more precise error handler (same scope)
err_h2 <- composerr_("obj has wrong value", "err_h")
if (!obj)
err_h2("Value is FALSE")
#--- resulting error ---
# "Something is wrong with obj: obj has wrong value: Value is FALSE"
## End(Not run)
## Not run:
# ------ composerr in flat situation ----------
# -- create a modified error handler in the same scope --
# check if variable 'obj' exists and holds value TRUE
obj <- FALSE
# original error handler
err_h <- composerr("Something is wrong with obj")
if (!exists("obj"))
err_h("obj does not exist")
# create more precise error handler (same scope)
err_h2 <- composerr("obj has wrong value", err_h)
if (!obj)
err_h2("Value is FALSE")
#--- resulting error ---
# "Something is wrong with obj: obj has wrong value: Value is FALSE"
## End(Not run)
## Not run:
# ------ composerr_parent in nested situation --------
# -- overwrite error handler in the deeper level scope --
# check if all entries of the list object 'obj' are TRUE
obj <- list(x = TRUE, y = TRUE, z = FALSE)
# original error handler
err_h <- composerr("obj is invalid")
# check each list element
sapply(names(obj), function(name) {
# modify error handler to nested sitation
err_h <- composerr_parent(paste("Error in", name), err_h)
# check element and throw error FALSE
if (!obj[[name]])
err_h("Value is FALSE")
})
#--- resulting error ---
# "obj is invalid: Error in z: Value is FALSE"
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.