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.