HTMLAgilityPack和加載超時

.net c# html-agility-pack vb.net

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

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

謝謝!

熱門答案

只需使用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




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因