2014-03-07 25 views
-1

我正在使用r和mysql数据库,并且我不知道如何在mysql中捕获插入数据到表错误。在R中捕获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') 

但当我查看状态VAR值,变量具有NULL值。

感谢

回答

0

tryCatch作品定义一个处理错误和警告的功能。如果您没有提供tryCatch这样的手柄,则不会做任何事情。

该文档有几个例子说明了这一点,以及一个长描述,概述它是如何工作的。

像这样:

tryCatch(log("a"),error = function(e) cat("I found an error")) 
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

状态是try函数的结果。