Code Fix

上級 › tryCatch の error ハンドラは warning を捕まえない › パターン2

tryCatch の error ハンドラは warning を捕まえない

tryCatch(expr, error = function(e) ...)のerrorハンドラは、条件クラスがerrorであるものしか捕まえません。

 1  safe_log <- function(x) {
 2    tryCatch({
 3      if (x <= 0) warning("non-positive input")
 4      log(x)
 5    }, error = function(e) {
 6      NA
 7    }__________________________)
                    ^
 8  }
 9  result <- safe_log(-1)
10  cat("result:", result, "\n")
出力: result: NaN

空欄を埋めて実行を通す

広告
広告スロット(未設定)

tryCatch の error ハンドラは warning を捕まえない

warning()で発生させた警告は、実行が止まらないままerrorハンドラをすり抜けます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)