我正在使用r和mysql数据库,我不知道如何在mysql中捕获插入数据到表错误。
我有这个:
status <- tryCatch({ AnalyzerDb.insert_data_frame(dataset) })
但是当我运行代码时出现错误:
Error en mysqlExecStatement(conn, statement, ...) :
RS-DBI driver: (could not run statement: Duplicate entry '00001002-2014-01-17 00:00:00' for key 'PRIMARY')
但是当我查看status var中的值时,该变量具有NULL值。
由于
答案 0 :(得分:0)
tryCatch
通过你来定义处理错误和警告的函数。如果您没有向tryCatch
提供任何此类句柄,则不会执行任何操作。
文档中有几个例子说明了这一点,以及描述其工作原理的详细说明。
这样的事情:
tryCatch(log("a"),error = function(e) cat("I found an error"))
答案 1 :(得分:0)
我已定义此功能:
myDivideTryCatchInformation <- function(StatusVector, status ) {
if (class(status) == "try-warning") {
StatusVector[4] = StatusVector[4] + 1
} else if (class(status) =="try-error") {
StatusVector[5] = StatusVector[5] + 1
} else {
StatusVector[3] = StatusVector[3] + 1
}
return(StatusVector)
}
params:StatusVector:这是一个有6个位置的向量:XXX,行,ok,警告,错误,XXX
和status是try函数的结果。