下面的代码是函数的一部分。 getLatestFileName 函数获取正确的文件名(本地存储)。
错误是由tryCatch表达式引起的:result <- try(xbrlDoAll...) 尽管我尝试使用 try 函数和 try catch 来捕获它,但我什至将选项更改为 show.error.messages = FALSE。 我不断收到导致 R 崩溃的以下输出:
[1]“最后一步”
[1]“第一步”
错误:未知的 IO 错误
I/O 警告:无法加载外部实体“http://xbrl.us/us-gaap/1.0/elts/us-gaap-all-2008-03-31.xsd”
根据我得到的打印结果,我认为错误是由 XBRL 包引起的,当它试图从上面的 url 获取信息时。
有人可以帮帮我吗?
instance <- getLatestFileName(ticker, date, type)
options(stringsAsFactors = FALSE)
result <- NA
#result <- try(xbrlDoAll(instance, cache.dir = "XBRLcache", prefix.out = NULL), silent = TRUE)
tryCatch({
print("STEP 1")
options(show.error.messages = FALSE)
result <- try(xbrlDoAll(instance, cache.dir = NULL, prefix.out = NULL), silent = TRUE)
print("STEP2")
}, warning <- function(w) {
result <- NA
print("WARNING")
}, error = function(e) {
result <- NA
print(result)
print("Test")
}, finally <- {
print("FINAL STEP")
})
try(is.na(result))
print("we did get here")
最佳答案
我通过将 2008 年的所有分类文件放在我的 XBRLCache 文件夹中解决了这个具体问题。
我在这个链接下载了正确的文件(不是空的,因为错误是什么):
http://xbrl.us/documents/XBRLUSGAAPTaxonomies-2008-03-31.zip
加载页面可能有问题,因为我发现它并不总是有效。 可能那些服务器太忙了..
我希望这也适用于其他人!
可惜我没有解决抓不到的问题..
关于r - Try Catch 未捕获 "error : unknown IO error"- I/O 警告 : failed to load external entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45368437/