Exception {R.oo} | R Documentation |
The Exception class to be thrown and caught
Description
Package: R.oo
Class Exception
Object
~~|
~~+--
try-error
~~~~~~~|
~~~~~~~+--
condition
~~~~~~~~~~~~|
~~~~~~~~~~~~+--
error
~~~~~~~~~~~~~~~~~|
~~~~~~~~~~~~~~~~~+--
simpleError
~~~~~~~~~~~~~~~~~~~~~~|
~~~~~~~~~~~~~~~~~~~~~~+--
Exception
Directly known subclasses:
InternalErrorException, RccViolationException, RdocException
public static class Exception
extends simpleError
Creates an Exception that can be thrown and caught. The Exception
class is the root class of all other Exception
classes.
Usage
Exception(..., sep="", collapse=", ")
Arguments
... |
One or several strings, which will be concatenated and contain informative message about the exception. |
sep |
The string to used for concatenating several strings. |
collapse |
The string to used collapse vectors together. |
Fields and Methods
Methods:
as.character | Gets a character string representing of the Exception. | |
getCall | - | |
getCalls | Gets the active calls saved when the exception was created. | |
getLastException | Static method to get the last Exception thrown. | |
getMessage | Gets the message of the Exception. | |
getStackTrace | Gets the stack trace saved when the exception was created. | |
getStackTraceString | Gets the stack trace as a string. | |
getWhen | Gets the time when the Exception was created. | |
print | Prints the Exception. | |
printStackTrace | Prints the stack trace saved when the exception was created. | |
throw | Throws an Exception that can be caught. | |
Methods inherited from error:
as.character, throw
Methods inherited from condition:
abort, as.character, conditionCall, conditionMessage, print
Methods inherited from Object:
$, $<-, [[, [[<-, as.character, attach, attachLocally, clearCache, clearLookupCache, clone, detach, equals, extend, finalize, getEnvironment, getFieldModifier, getFieldModifiers, getFields, getInstantiationTime, getStaticInstance, hasField, hashCode, ll, load, names, objectSize, print, save
Author(s)
Henrik Bengtsson
See Also
See also tryCatch()
(and try
()).
Examples
######################################################################
# 1. To catch a regular "error" exception thrown by e.g. stop().
######################################################################
x <- NA
y <- NA
tryCatch({
x <- log(123)
y <- log("a")
}, error = function(ex) {
print(ex)
})
print(x)
print(y)
######################################################################
# 2. Always run a "final" expression regardless or error or not.
######################################################################
filename <- tempfile("R.methodsS3.example")
con <- file(filename)
tryCatch({
open(con, "r")
}, error = function(ex) {
cat("Could not open ", filename, " for reading.\n", sep="")
}, finally = {
close(con)
cat("The id of the connection is ",
ifelse(is.null(con), "NULL", con), ".\n", sep="")
})
######################################################################
# 3. Creating your own Exception class
######################################################################
setConstructorS3("NegativeLogValueException", function(
msg="Trying to calculate the logarithm of a negative value", value=NULL) {
extend(Exception(msg=msg), "NegativeLogValueException",
.value = value
)
})
setMethodS3("as.character", "NegativeLogValueException", function(this, ...) {
paste(as.character.Exception(this), ": ", getValue(this), sep="")
})
setMethodS3("getValue", "NegativeLogValueException", function(this, ...) {
this$.value
})
mylog <- function(x, base=exp(1)) {
if (x < 0)
throw(NegativeLogValueException(value=x))
else
log(x, base=base)
}
# Note that the order of the catch list is important:
l <- NA
x <- 123
tryCatch({
l <- mylog(x)
}, NegativeLogValueException = function(ex) {
cat(as.character(ex), "\n")
}, "try-error" = function(ex) {
cat("try-error: Could not calculate the logarithm of ", x, ".\n", sep="")
}, error = function(ex) {
cat("error: Could not calculate the logarithm of ", x, ".\n", sep="")
})
cat("The logarithm of ", x, " is ", l, ".\n\n", sep="")