我有一个R脚本,用于通过Rscript.exe
执行命令行,包括一个长时间运行的循环,它可以调用API并将结果写入数据库。该脚本包括通过trycatch
进行数据库清理的错误处理:
trycatch({
# api and database call loop
}, finally = {
# database cleanup
})
这很好地处理了API和数据库错误,但是用户中断(bash CTRL + C)终止执行而不触发finally
块。
有没有办法允许用户输入启动优雅退出?这可以是检测硬中断并处理它的方法,也可以是每个循环检查一次的方法,如果已经进行了某些键盘输入(没有暂停循环以等待输入)。
答案 0 :(得分:0)
您是否尝试添加错误条款?
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
}
)