Exceptions

You may have noticed that R sometimes gives you an error when you enter an invalid expression. For example:

> 12 / "hat"
Error in 12/"hat" : non-numeric argument to binary operator

Other times, R may just give you a warning:

> if (c(TRUE,FALSE)) TRUE else FALSE
[1] TRUE
Warning message:
In if (c(TRUE, FALSE)) TRUE else FALSE :
  the condition has length > 1 and only the first element will be used

Like other modern programming languages, R includes the ability to signal exceptions when unusual events occur and catch exceptions when they occur. If you are writing your own R programs, it is usually a good idea to stop execution when an error occurs and alert the user (or calling function). Likewise, it is usually a good idea to catch exceptions from functions that are called within your programs.

It might seem strange to talk about exception handling in the context of environments, but exception handling and environments are closely linked. When an exception occurs, the R interpreter may need to abandon the current function and signal the exception in the calling environment.

This section explains how the error-handling system in R works.

Signaling Errors

If something occurs in your code that requires you to stop execution, you can use the stop function. For example, suppose that you had written a function called dowork(filename) to automatically generate some charts and save them to a file specified by the argument filename. Suppose that R couldn’t write to the file, possibly because ...

Get R in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.