Code Fix

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

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

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

 1  safe_div_check <- function(a, b) {
 2    tryCatch({
 3      if (b == 0) warning("division by zero")
 4      a / b
 5    }, error = function(e) {
 6      NA
 7    }__________________________)
                    ^
 8  }
 9  result <- safe_div_check(10, 0)
10  cat("result:", result, "\n")
出力: result: Inf

空欄を埋めて実行を通す

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

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

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

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

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