[解決済み】Rで「中断されたプロミスの評価を再開する」という警告を回避する
2022-02-22 04:04:49
質問内容
問題点
関数内で、エラーが発生する式を複数回評価すると、警告が表示されるようです。
restarting interrupted promise evaluation
. 例えば
foo <- function() stop("Foo error")
bar <- function(x) {
try(x)
x
}
bar(foo())
イールド
Error in foo() : Foo error
Error in foo() : Foo error
In addition: Warning message:
In bar(foo()) : restarting interrupted promise evaluation
この警告を回避し、適切に対処するにはどうしたらよいでしょうか。
背景
特にデータベースへの書き込みなどの操作では、ロックエラーが発生し、何度か操作をやり直さなければならないことがあります。そのため、私は
tryCatch
までの式を再評価するものです。
n
を成功するまで繰り返す。
tryAgain <- function(expr, n = 3) {
success <- T
for (i in 1:n) {
res <- tryCatch(expr,
error = function(e) {
print(sprintf("Log error to file: %s", conditionMessage(e)))
success <<- F
e
}
)
if (success) break
}
res
}
しかし
restarting interrupted promise evaluation
のメッセージが表示されます。
> tryAgain(foo())
[1] "Log error to file: Foo error"
[1] "Log error to file: Foo error"
[1] "Log error to file: Foo error"
<simpleError in foo(): Foo error>
Warning messages:
1: In doTryCatch(return(expr), name, parentenv, handler) :
restarting interrupted promise evaluation
2: In doTryCatch(return(expr), name, parentenv, handler) :
restarting interrupted promise evaluation
からの本物の警告を処理したい場合もあるので、これらのメッセージを消すのではなく、完全に回避するのが理想的です。
expr
.
解決方法は?
を使わずに試すこともできます。
silent=TRUE
もし、それぞれのエラーメッセージを表示させたい場合は どちらの場合も、約束に関するメッセージは表示されません。
foo <- function() stop("Foo error")
bar <- function(x) {
try(eval.parent(substitute(x)), silent = TRUE)
x
}
bar(foo())
関連
-
[解決済み】xtsオブジェクトでエラー: "antempt to set 'colnames' on the object with less than two dimension "を克服する方法
-
[解決済み】数学関数への非数値引数
-
[解決済み】library(ggplot2)でエラー:'ggplot2'というパッケージは存在しません。
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】x[[i]]でのエラー:レベル2で再帰的インデックス作成に失敗した
-
[解決済み】match.fun(FUN)でのエラーについて)
-
[解決済み】bstTreeの予測値の混乱行列、エラー:'The data must contain some levels that overlap reference'.
-
[解決済み】.External.graphics Rでエラーが発生しました。
-
[解決済み] Rを再起動せずにパッケージをアンロードする方法
-
[解決済み] 警告をtry/catchすることはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R:関数に有限な'ylim'値が必要
-
[解決済み] promise already under evaluation: recursive default argument reference or earlier problems?
-
[解決済み】 'height' はベクトルか行列でなければならない barplot のエラー
-
[解決済み] 不適合な配列のコードエラー
-
[解決済み】'builtin'型のオブジェクトはsubsetableではない【重複
-
[解決済み】knitrのドキュメントでinstall.packagesが失敗する。"ミラーを設定せずにCRANを使おうとしている"
-
[解決済み】GLM解析での警告
-
[解決済み】r Error dim(X) must have a positive length?
-
[解決済み】Rで結果の行数がベクトル長(arg 2)の倍数でない件
-
[解決済み】Rで「中断されたプロミスの評価を再開する」という警告を回避する