2011-05-03 27 views
3

我在一個解析器中使用HTMLAgilityPack,我已經在服務器上,但我遇到了一個我正在解析的網站的問題:每天早上6點左右,他們往往會關閉他們的服務器進行維護,這會拋出HTMLWeb的Load()方法,並導致我的應用程序崩潰。你們中的任何一個人是否有更安全的將網站加載到HTMLAgilityPack的方式,或者某種方式在C#中執行錯誤檢查以防止我的應用程序崩潰? (我的C#有點生疏)。這是我現在的代碼:HTMLAgilityPack和加載超時

HtmlWeb webGet = new HtmlWeb(); 
HtmlDocument document = webGet.Load(dealsiteLink); //The Load() method here stalls the program because it takes 1 or 2 minutes before it realizes the website is down 

謝謝!

+1

「阻止我的應用程序崩潰」 - 也許是一個try/catch是爲了? – 2011-05-03 23:35:02

回答

3

剛好圍繞呼叫用一個try-catch:

HtmlWeb webGet = new HtmlWeb(); 

HtmlDocument document; 
try 
{ 
    document = webGet.Load(dealsiteLink); 
} 
catch (WebException ex) 
{ 
    // Logic to retry (maybe in 10 minutes) goes here 
} 

確切的重試邏輯將取決於您的應用程序是如何組織的 - 你可能會發現,try-catch塊需要放置上漲的應用程序需要比這更高。

我認爲WebException是您應該捕捉的異常,但我無法確定,因爲找不到文檔。你可能會發現你也需要趕上TimeoutException