Witam,

mam program który za pomocą Curl ściąga kod strony www i zapisuje go do pliku.

Chcę zrobić tak, że jak coś się nie uda to wyskakuje wyjątek informujący o tym i zamyka program.

Testuję to na braku łączności z internetem.

gdy uruchamiam program to oczywiście nie wyskakuje żaden wyjątek, program zatrzymuje się na:

res = easy.Perform();

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SeasideResearch.LibCurlNet;
using System.Text.RegularExpressions;
using System.IO;
using System.Net;

namespace w
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                uzupelnij();
            }

            catch
            {
                MessageBox.Show("nie udalo sie");
                Application.Exit();
            }

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        string []pliki;
        public int k;
        public int sezon_poczatkowy;

        

        public void pobierz_kod()
        {
            string []linki = new string[3];

            System.DateTime czas = new DateTime();

            czas = DateTime.Now;

            int rok = czas.Year;
            int miesiac = czas.Month;

            string link = "http://www.premiership-football.co.uk/Premiership-Matches-Results-0000-0000.php";
            string link2 = "http://optasportsdata.telegraph.co.uk/en/tcuk/extnavig/8/0000/620x604newresults.html";

            string rocznik, rocznik2;

            if (miesiac < 7)
            {

                int rok_a = rok - 3;
                sezon_poczatkowy=rok_a;

                for (int i = 0; i < 2; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        rok_a += j;

                        rocznik = rok_a.ToString();

                        Regex rgx = new Regex("0000");

                        string replacer = rocznik;

                        link = rgx.Replace(link, replacer,1);
                        linki[i] = link;

                    }

                    rok_a = rok - 2;
                    link="http://www.premiership-football.co.uk/Premiership-Matches-Results-0000-0000.php";
		
                }

                int rok_b = rok - 1;

                rocznik2 = rok_b.ToString();

                Regex rgx2 = new Regex("0000");

                string replacer2 = rocznik2;

                link2 = rgx2.Replace(link2, replacer2, 1);
                linki[2] = link2;

            }
            else
            {
                int rok_a = rok - 2;
                sezon_poczatkowy=rok_a;

                for (int i = 0; i < 2; i++)
                {
                    for (int j = 0; j < 2; j++)
                    {
                        rok_a += j;

                        rocznik = rok_a.ToString();

                        Regex rgx = new Regex("0000");

                        string replacer = rocznik;





                        link = rgx.Replace(link, replacer, 1);
                        linki[i] = link;

                    }

                    rok_a = rok - 1;
                    link = "http://www.premiership-football.co.uk/Premiership-Matches-Results-0000-0000.php";
                }
                int rok_b = rok;

                rocznik2 = rok_b.ToString();

                Regex rgx2 = new Regex("0000");

                string replacer2 = rocznik2;





                link2 = rgx2.Replace(link2, replacer2, 1);
                linki[2] = link2;

            }

            for(int i=0; i<3; i++)
            {
                sciaganie(pliki[i], linki[i]);
            }

        }

        public void uzupelnij()
        {
            System.DateTime czas = new DateTime();
            pliki = new string[1];
            pliki[0] = "plik.txt";
            czas = DateTime.Now;

            int rok = czas.Year;
            int miesiac = czas.Month;

            string link2 = "http://optasportsdata.telegraph.co.uk/en/tcuk/extnavig/8/0000/620x604newresults.html";

            string rocznik, rocznik2;

            if (miesiac < 7)
            {

                int rok_a = rok - 1;


                rocznik = rok_a.ToString();

                Regex rgx = new Regex("0000");
                string replacer = rocznik;
                
                link2 = rgx.Replace(link2, replacer, 1);

            }
            else
            {
                int rok_a = rok;
                
                
                rocznik = rok_a.ToString();
                
                Regex rgx = new Regex("0000");
                string replacer = rocznik;
                
                link2 = rgx.Replace(link2, replacer, 1);

            }

            
            
                sciaganie(pliki[0], link2);
                textBox1.Text = "fsadf".ToString();

        }

        public string m;

        private StreamWriter zapis;

        public void sciaganie(string plik, string link)
        {

            k = 0;
            zapis = new StreamWriter(plik);
            Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);

            CURLcode res = CURLcode.CURLE_OK;
            Easy easy = new Easy();
            Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);

            easy.SetOpt(CURLoption.CURLOPT_URL, link);
            easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);

            
            res = easy.Perform();

            
            if (res != CURLcode.CURLE_OK)
            {
                
                throw new Exception("Post operation failed");
            } textBox1.Text = "fsadf".ToString();
            easy.Cleanup();
            Curl.GlobalCleanup();
            zapis.Close();
        }

        public Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb, Object extraData)
        {
            zapis.Write(System.Text.Encoding.UTF8.GetString(buf));
            return size * nmemb;
        }
    }
}