上級 › 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
空欄を埋めて実行を通す
errorハンドラだけを用意してもwarning()による警告は捕まえられず、sqrt(x)がそのまま実行されてNaNになります。捕まえたい場合はwarning=という別のハンドラが必要です。
次の問題