1

嗨,我使用下面的代码检查 5 个 url,但如果 ex: url no 3 is 404 not found 代码将停止检查第 4 个 url,无论如何我可以让代码运行直到 url 列表完成?

    private void button2_Click(object sender, EventArgs e)
    {
        try
        {
                for (i = 0; i < listBox1.Items.Count; i++)
                {       
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(listBox1.Items[i].ToString());
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        listBox3.Items.Add(listBox1.Items[i].ToString());
                    }
                }
        }
        catch (WebException x)
        {
        }
    }
4

2 回答 2

1

异常可能会在request.GetResponse()您的应用程序的一部分中引发。

但无论如何,在你的代码中,异常编译器会跳出循环,因为你的 try/catch 在你的循环之外。因此,将您的代码更改为:

private void button2_Click(object sender, EventArgs e)
    {
        for (i = 0; i < listBox1.Items.Count; i++)
        {      
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(listBox1.Items[i].ToString());
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    listBox3.Items.Add(listBox1.Items[i].ToString());
                }
            }
            catch(Exception)
            {
                // do whatever you want
            }
        }
    }
于 2013-08-25T13:35:05.733 回答
0

将异常处理移至循环内。这样,如果出现异常,您就不会跳出循环。

于 2013-08-25T13:34:27.993 回答