上級 › 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
空欄を埋めて実行を通す
warning()で発生させた警告はerrorハンドラをすり抜けてしまい、log(x)の計算が続行されNaNが返ります。
次の問題