Check if an argument has valid type, and if not, generate an error message.
check_type(
x,
valid,
name = NULL,
general = NULL,
specific = NULL,
supplement = NULL,
...
)
The argument to check, which can be any object.
A character vector which contains the valid types.
A single character which gives the argument's name.
The name is used in the error message. By default, the name of the
argument passed to argument x
is captured automatically.
Optional. A single character which is used to give a general statement of the error incurred. By default, this is generated automatically.
Optional. A single character which gives a detailed
description of the error. glue::glue()
syntax can be used, see
"Examples" section. By default, this is generated automatically.
Optional. A (named) character vector which gives some
additional information about the error. The names are used to create
bullets, see throw()
. By default, this is left empty.
Optional. Additional arguments which can be retrieved with
tryCatch()
.
returns an invisible NULL
if the argument is valid, or
generates an error message.
vignette("erify")
for a gentle introduction to this package.
# argument to check
arg <- 10
# returns silently if the argument has valid type
check_type(arg, "double")
if (FALSE) {
check_type(arg, "character")
# specify argument's name
check_type(arg, "character", name = "x")
# specify argument `specific` with `glue::glue()` syntax
specific <- "`{name}`'s type is {feature}, which is wrong."
check_type(arg, "character", specific = specific)
# specify argument `supplement`
supplement <- c("You're wrong.", i = "Check your code.")
check_type(arg, "character", supplement = supplement)
# turn off `specific`
check_type(arg, "character", specific = character())
}
# add and retrieve additional argument
tryCatch(
{check_type(arg, "character", your_arg = "your data")},
error = function(e) e$your_arg
)
#> [1] "your data"