2017-07-28 95 views
3

下面的代碼是函數的一部分。 getLatestFileName函數獲取正確的fileName(本地存儲)。嘗試抓住不捕捉「錯誤:未知IO錯誤」 - I/O警告:未能加載外部實體

的錯誤是由tryCatch表達引起的結果:< - 嘗試(xbrlDoAll ...) 儘管我試着用一試功能和嘗試捕捉抓住它,我甚至改變選項show.error.messages = FALSE。 我一直得到以下輸出這導致R鍵崩潰:

[1] 「FINAL STEP」

[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") 
+0

會發生什麼,如果你只運行'xbrlDoAll(例如,詳細= T)'? – Christoph

+0

@Christoph 軟件包試圖獲取模式,並且正在查看文件的緩存文件夾,該文件爲空,因爲生成此文件的URL不再存在。 錯誤在最後幾行顯示: 'D:/Thesis_Bram_Lavens/DataLost/raw_data/ABB/20-F/2009-03-10/2008-12-31/abb-20081231.xsd ==>架構:http://xbrl.us/us-gaap/1.0/elts/us-gaap-all-2008-03-31.xsd 架構:http://xbrl.us/us-gaap/1.0/elts/us -gaap-all-2008-03-31.xsd 使用緩存目錄中的文件... XBRL緩存/ us-gaap-all-2008-03-31.xsd:1:解析器錯誤:文檔爲空 元素「 – Bala

+0

抱歉編輯!我試圖讓格式正確,第一次我真的發佈在stackoverflow – Bala

回答

0

我解決了這個特定的問題,將2008年的所有分類標準文件放在我的XBRLCache文件夾中。

我在這個鏈接下載正確的文件(不是空的,因爲是什麼錯誤):

http://xbrl.us/documents/XBRLUSGAAPTaxonomies-2008-03-31.zip

可以有與加載網頁時出現問題,因爲我看到它並不總是工作。 可能那些服務器太忙..

我希望這也適用於其他人!

太糟糕了,我也沒解決不捕問題..