ID EN
Control Flow

try

R Base 3.6.2 🇮🇩 Bahasa Indonesia

try adalah pembungkus untuk menjalankan ekspresi yang mungkin gagal dan memungkinkan kode pengguna menangani pemulihan kesalahan.

Syntax

R
try(expr, silent = FALSE,
    outFile = getOption("try.outFile", default = stderr()))

Arguments

Parameter Deskripsi
expr an R expression to try.
silent logical: should the report of error messages be suppressed?
outFile a connection, or a character string naming the file to print to (via cat(*, file = outFile)); used only if silent is false, as by default.

Return Value

Nilai ekspresi jika expr dievaluasi tanpa kesalahan, tetapi objek kelas "coba-kesalahan" yang tidak terlihat berisi pesan kesalahan, dan kondisi kesalahan sebagai atribut "kondisi", jika gagal.

Details

try mengevaluasi ekspresi dan menjebak kesalahan apa pun yang terjadi selama evaluasi. Jika terjadi kesalahan maka pesan kesalahan dicetak ke koneksi stderr kecuali options("show.error.messages") salah atau panggilan menyertakan silent = TRUE. Pesan kesalahan juga disimpan dalam buffer yang dapat diambil dengan geterrmessage. (Ini tidak diperlukan karena nilai yang dikembalikan jika terjadi kesalahan berisi pesan kesalahan.) try diimplementasikan menggunakan tryCatch; untuk pemrograman, daripada try(expr, silent = TRUE), sesuatu seperti tryCatch(expr, error = function(e) e) (atau fungsi penangan kesalahan sederhana lainnya) mungkin lebih efisien dan fleksibel. Mungkin berguna untuk menyetel default outFile ke stdout(), yaitu options(try.outFile = stdout()) alih-alih default stderr(), terutama saat try(

Contoh

Example
R
# NOT RUN {
## this example will not work correctly in example(try), but
## it does work correctly if pasted in
options(show.error.messages = FALSE)
try(log("a"))
print(.Last.value)
options(show.error.messages = TRUE)

## alternatively,
print(try(log("a"), TRUE))

## run a simulation, keep only the results that worked.
set.seed(123)
x <- stats::rnorm(50)
doit <- function(x)
{
    x <- sample(x, replace = TRUE)
    if(length(unique(x)) > 30) mean(x)
    else stop("too few unique points")
}
## alternative 1
res <- lapply(1:100, function(i) try(doit(x), TRUE))
## alternative 2
# }
# NOT RUN {
res <- vector("list", 100)
for(i in 1:100) res[[i]] <- try(doit(x), TRUE)
# }
# NOT RUN {
unlist(res[sapply(res, function(x) !inherits(x, "try-error"))])
# }

See Also

options for setting error handlers and suppressing the printing of error messages; geterrmessage for retrieving the last error message. The underlying tryCatch provides more flexible means of catching and handling errors. assertCondition in package tools is related and useful for testing.