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

本文关键字:代码 找不到 如果 | 更新日期: 2023-09-27 18:28:53

嗨,我使用下面的代码来检查5个url,但如果没有找到ex:url no3,代码将停止检查第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)
        {
        }
    }

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

异常可能在应用程序的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
            }
        }
    }

将异常处理移动到循环中。这样,如果出现异常,就不会脱离循环。