- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 RJDBC 查询 R 中的数据库。查询是根据从文件中读入的数据构建的。这些查询可能会很长,并且可能包含不存在的列(导致错误)。
下面是一个简化示例,它将文件作为输入,并运行从文件生成的 2 个查询。
table columndrinks costdrinks sugardrinks volumefood cost
SELECT column, cost, sugar FROM drinks;
SELECT cost FROM food;
ERROR [2018-05-16 16:53:07] Error processing table data_baseline_biosamples for DAR-2018-00008 original error message: Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ", : Unable to retrieve JDBC result set for SELECT ed.studyid, {very long list of columns} ,ct.nmr_xl_vldl_pl,ct.nmr_xl_
(line 1, Table 'data_biosamples' owned by 'littlefeltfangs' does not contain column 'sample_source'.)
最佳答案
不是RJDBC
这会切断错误消息。
见 ?stop
:
Errors will be truncated to
getOption("warning.length")
characters, default 1000.
stop(paste(rep(letters, 50L), collapse = ''))
options(warning.length = 2000L)
stop(paste(rep(letters, 50L), collapse = ''))
您会注意到第一条消息中的截断,但不会注意到第二条消息。
RDJBC
中捕获错误,我使用类似的东西:
result = tryCatch(<some DB operation>, error = identity)
然后在
result$message
上做正则表达式测试各种常见错误并生成更友好的错误消息。
?stop
中未提及是
warning.length
只能在相当窄的值范围内。为了探索这一点,我运行了以下代码:
old = options('warning.length')
can = vapply(1:16000L, function(ii) {
!is.error(tryCatch(options(warning.length=ii), error=identity))
}, logical(1L))
options(old)
png('~/Desktop/warning_valid.png')
plot(can, las = 1L, ylab = 'Valid option value?',
main = 'Valid option values for `warning.length`',
type = 's', lwd = 3L, log = 'x')
first = which.max(can)
switches = c(first, first + which.min(can[first:length(can)] - 1L))
abline(v = switches, lty = 2L, col = 'red', lwd = 2L)
axis(side = 1L, at = switches, las = 2L, cex = .5)
dev.off()
[... truncated]
)。
Here是 R 源中这些值被硬编码的位置,以及
here是定义8192缓冲区大小的地方。
core_msg = gsub('.*(Query failed.*)\\)\\s*$', '\\1', result$message)
这是为了迎合来自 PrestoDB 的错误消息,所以你必须自己定制它,但想法是剪掉你的错误消息的那部分,它只是反刍查询本身。
result$message
分成小于
8172
的两位字符并分别打印出来。
关于r - 如何防止截断 R 中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387667/
我有一个经典的 ASP 页面 (VBscript),它在服务器端生成 XML,然后 Response.Writes。该页面根本没有客户端。 但是我需要将其转换为 JSON。由于我找不到有效的 ASP
我想从客户端应用程序的 HDFS 中读取特定的 SequenceFile。我可以使用 SequenceFile.Reader 来做到这一点,它工作正常。但是是否也可以通过分析抛出的 IOExcepti
我是一名优秀的程序员,十分优秀!