如果找不到404,则代码​​停止

时间:2013-08-25 13:33:20

标签: c# .net

您好我使用下面的代码检查5个网址,但如果ex:url no 3未找到404代码将停止检查第4个网址,无论如何我可以做代码运行直到网址列表完成?

    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)
        {
        }
    }

2 个答案:

答案 0 :(得分: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
            }
        }
    }

答案 1 :(得分:0)

将异常处理移至循环内。这样,如果有异常,你就不会突破循环。