blob: e988ce8f50d9ce0b4b2793221f1804d26879c434 [file] [log] [blame]
% File src/library/base/man/warning.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2014 R Core Team
% Distributed under GPL 2 or later
\name{warning}
\alias{warning}
\alias{suppressWarnings}
\title{Warning Messages}
\description{
Generates a warning message that corresponds to its argument(s) and
(optionally) the expression or function from which it was called.
}
\usage{
warning(\dots, call. = TRUE, immediate. = FALSE, noBreaks. = FALSE,
domain = NULL)
suppressWarnings(expr)
}
\arguments{
\item{\dots}{zero or more objects which can be coerced to character
(and which are pasted together with no separator) or a single
condition object.}
\item{call.}{logical, indicating if the call should become part of the
warning message.}
\item{immediate.}{logical, indicating if the call should be output
immediately, even if \code{\link{getOption}("warn") <= 0}.}
\item{noBreaks.}{logical, indicating as far as possible the message should
be output as a single line when \code{options(warn = 1)}.}
\item{expr}{expression to evaluate.}
\item{domain}{see \code{\link{gettext}}. If \code{NA}, messages will
not be translated, see also the note in \code{\link{stop}}.}
}
\details{
The result \emph{depends} on the value of
\code{\link{options}("warn")} and on handlers established in the
executing code.
If a condition object is supplied it should be the only argument, and
further arguments will be ignored, with a message.
\code{warning} signals a warning condition by (effectively) calling
\code{signalCondition}. If there are no handlers or if all handlers
return, then the value of \code{warn = \link{getOption}("warn")} is
used to determine the appropriate action. If \code{warn} is negative
warnings are ignored; if it is zero they are stored and printed after
the top--level function has completed; if it is one they are printed
as they occur and if it is 2 (or larger) warnings are turned into
errors. Calling \code{warning(immediate. = TRUE)} turns \code{warn <=
0} into \code{warn = 1} for this call only.
If \code{warn} is zero (the default), a read-only variable
\code{last.warning} is created. It contains the warnings which can be
printed via a call to \code{\link{warnings}}.
Warnings will be truncated to \code{\link{getOption}("warning.length")}
characters, default 1000, indicated by \code{[... truncated]}.
While the warning is being processed, a \code{muffleWarning} restart
is available. If this restart is invoked with \code{invokeRestart},
then \code{warning} returns immediately.
An attempt is made to coerce other types of inputs to \code{warning}
to character vectors.
\code{suppressWarnings} evaluates its expression in a context that
ignores all warnings.
}
\value{
The warning message as \code{\link{character}} string, invisibly.
}
\references{
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
\emph{The New S Language}.
Wadsworth & Brooks/Cole.
}
\seealso{
\code{\link{stop}} for fatal errors,
\code{\link{message}} for diagnostic messages,
\code{\link{warnings}},
and \code{\link{options}} with argument \code{warn=}.
\code{\link{gettext}} for the mechanisms for the automated translation
of messages.
}
\examples{
\dontshow{oldopt <- options(warn = 1)}
testit <- function() warning("testit")
testit() ## shows call
testit <- function() warning("problem in testit", call. = FALSE)
testit() ## no call
suppressWarnings(warning("testit"))
\dontshow{eigenval <- 10 ^ -stats::rnorm(1, mean = 6)
if(eigenval < 1.e-7) warning("system near singular")
options(oldopt)}
}
\keyword{programming}
\keyword{error}