我有一个R脚本,该R脚本通过Rscript.exe
设计为命令行执行,其中包含一个长期运行循环,该循环进行API调用,并将结果写入数据库。该脚本包括通过trycatch
进行错误处理数据库清理的错误处理:
trycatch({
# api and database call loop
}, finally = {
# database cleanup
})
这可以很好地处理API和数据库错误,但是用户间断(Bash Ctrl C)终止执行而无需触发finally
块。
有什么方法可以允许用户输入启动的优美退出?这可能是一种检测硬中断并处理它的方法,或者是每循环一次检查一次键盘输入的方法(而无需暂停循环等待输入)。
您是否尝试在错误子句中添加?
trycatch({
# api and database call loop
},
error=function(e) {
message(paste("ERROR:", e))
#implement graceful exit
return(NULL) #or whatever value you want
},
finally = {
# database cleanup
}
)