Non-error failures
There are other ways for a function to fail apart from throwing an error:
A function may generate an unexpected warning. Convert warnings into errors with
options(warn = 2)
and use the the call stack.A function may generate an unexpected message. The removal of
with_abort()
from {rlang} breaks this solution.A function might never return.
The worst scenario is that your code might crash R completely, leaving you with no way to interactively debug your code. This indicates a bug in compiled (C or C++) code.