Code Fix

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

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

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

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

空欄を埋めて実行を通す

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

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

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

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

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