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.