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 operatorOther 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 usedLike other modern programming languages, R includes the ability to signal exceptions when unusual events occur and catch to 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 ...