0

Watinを使用して、Webサイトからのファイルのダウンロードを自動化しています。Webサーバーが特定の時間内に応答しない場合、ある時点でタイムアウトエラーが発生します。どのインデックスでタイムアウトが発生し、そのインデックスでforループが繰り返されるのか知りたいです。

例えば:

for (int index = 0; index < ros.Count; index++)
{
    //download document
    FileDownloadHandler down = new FileDownloadHandler(dir+nume+"_"+ro+".pdf");
    using (new UseDialogOnce(browser.DialogWatcher, down))
    {
        down.WaitUntilFileDownloadDialogIsHandled(100);
        down.WaitUntilDownloadCompleted(100);
    }
}

タイムアウトが発生したときに、forループ内のインデックスを知りたいので、ダウンロードハンドラーを再試行したいと思います。出来ますか ?

4

1 に答える 1

0

ほとんどの場合、タイムアウトによって例外がスローされます。どの例外が正確にスローされるかを把握する必要があります。そうすれば、ループ内でそれをキャッチできます。

for (int index = 0; index < ros.Count; index++) 
{ 
    //download document
    try 
    { 
        FileDownloadHandler down = new FileDownloadHandler(dir+nume+"_"+ro+".pdf"); 
        using (new UseDialogOnce(browser.DialogWatcher, down)) 
        { 
            down.WaitUntilFileDownloadDialogIsHandled(100); 
            down.WaitUntilDownloadCompleted(100); 
        }
    } 
    catch(Exception e) 
    {
        // TODO: Handle timeout. The value of index will tell you when the timeout occured
    } 
} 
于 2012-06-22T06:26:36.890 に答える