Open
TRY CATCH Mekanizması

Try-Catch, bir programın çalışma zamanında (runtime) ortaya çıkan hataların yakalanıp, yönetilebilmesi için kullanılan bir yapıdır.

Try-Catch, bir programın çalışma zamanında (runtime) ortaya çıkan hataların yakalanıp, yönetilebilmesi için kullanılan bir yapıdır.
Hatırlatma:try //Programın kullanımı esnasında hata oluşabilmesi mümkün olabilecek kodların yazıldığı bloktur.
catch (Exception Hata)// Program esnasında oluşabilecek hataları kontrol edebileceğimiz kod bloğumuzdur (govdesidir).
Exception: Oluşan hataları yakalayan nesnemizdir.
finally//İşler gerçekleşse de gerçekleşmese de yapılması istenen işlemler belirtilir.
 
protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        //TRY
        //Programın kullanımı esnasında hata oluşabilmesi mümkün olabilecek kodların yazıldığı bloktur.

    }
    catch (Exception Hata)
    {
        //CATCH
        //Program esnasında oluşabilecek hataları kontrol edebileceğimiz kod bloğumuzdur (govdesidir).
        //Exception: Oluşan hataları yakalayan nesnemizdir.
    }
    finally
    {
        //İşler gerçekleşse de gerçekleşmese de yapılması istenen işlemler belirtilir. 
                
    }

}   

<asp:Label  ID="lblsonuc" runat="server" Text="Doğum yılı tarihinizi giriniz"/> <br />
<asp:TextBox runat="server" ID="textBox1"/>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="button1_Click" /><br />
    
private void button1_Click(object sender, EventArgs e)
{
try
{
    int girilenYil = Convert.ToInt32(textBox1.Text); 
    int yas = 2019 - girilenYil;
    lblsonuc.Text = "Yaşınız : " + yas; 
}
catch (Exception ex)
{
    lblsonuc.Text = "Hata oluştu " + ex.Message; 
}
finally
{ 
    textBox1.Text="";
}
}



Exception

Exceptionın birden çok türü vardır.
Bir hesaplama sisteminde hataları detaylı yakalamak istersek;


private void button2_Click(object sender, EventArgs e)
{
    try
    {
        int sayi1 = Convert.ToInt32(textBox1.Text);
        int sayi2 = Convert.ToInt32(textBox2.Text);
        int bolum = sayi1 / sayi2;
        lblsonuc.Text=bolum.ToString();
    }
    catch (DivideByZeroException dex)
    {
        lblsonuc.Text = dex.Message + "Sıfıra bölme girişiminde bulunuldu.";

    }
    catch (FormatException fex)
    {

        lblsonuc.Text = fex.Message + "Harf yazma girişiminde bulunuldu.";
    }
    catch (OverflowException ofex)
    {

        lblsonuc.Text = ofex.Message + "Girmiş olduğunuz değeri hesaplamakta zorlanıyorum.";
    }
    catch (Exception ex)
    {
        lblsonuc.Text = ex.Message;
    }

}

    
17.02.2020