Defer errors
Proof-of-concept for collecting up errors from a code block and throwing them at all once.
check_positive <- function(x) {
if (x < 0) {
defer::deferrable_error(paste("got a negative number:", x))
}
}
defer::defer_errors({
check_positive(0)
check_positive(-1)
check_positive(-2)
})
## Error: 2 errors occured:
## - got a negative number: -1
## - got a negative number: -2