Hata-Ayiklama_emresupcinTekrar merhaba sevgili okurlar,

Asp.NET Kontrollerini bitirdik ve sıra geldi Master Page ve Hata Ayıklama konularına. Asp.Net de sayfamıza eklediğimiz her kontrolün bir id si bulunuyor. Javascript ile kontrollerimize erişmek istediğimizde bu id leri direk kullanabiliyoruz. Eğer masterpage kullanırsak işler biraz değişiyor. Sayfamız masterpage den türediği zaman kontrollerin idlerine bir ön ek geliyor.

 

 

Bunu kod tarafında göremesekte sayfa yorumlandıktan sonra kaynak kodlarına baktığımızda id lerin değiştiğini görüyoruz. Makalemize geçerek ayrıntılı bilgileri sizler ile paylaşayım.

 

Master Page
• Web sitelerinde genellikle üst kısım(header),Alt kısım(Footer) ve belirli birkaç uygulama her sayfada ayrı ayrı eklenmez.
• Düşünün 150 sayfalı bir web uygulamanız var ve sayfada ufak bir değişiklik yapmak istediğinizde tüm sayfalarda yapmak zorunda kalırdınız. Bu çok zahmetli olurdu.
• ASP’de Include yöntemi ile bir sayfa yapıp o sayfayı diğer tüm sayfalara gömerek bu zahmetten kurtulabiliyorduk. ASP.Net ise Master Page ile bizlere bu özelliği daha gelişmiş olarak sunuyor.

 
Master Page Nedir? Nasıl Kullanılır?
• ASP uygulamalarında Include ettiğimiz sayfaları çalıştırmadan düzenleyemiyorduk. Fakat Master Page ile artık bu sorun ortadan kalktı ve bu özellik oldukça kullanışlı bir araç oldu.
• Bir web uygulaması oluşturalım ve detaylı olarak inceleyelim;

 

Uygulamamıza bir adet Master Page ekliyoruz.

 

1   <div>
2 <asp:ContentPlaceHolder id=ContentPlaceHolder1" runat="server">
3     </asp:ContentPlaceHolder>
4   </div>

 

Master Page sayfamızın Source bölümüne baktığımızda <div> arasında bir ContentPlaceHolder olduğunu görmekteyiz. Bu kısmı şimdilik silelim.

 

Master Page sayfamızın içerisine tablomuzu ekledik ve tasarımımızı yaptık. Header, Footer, Sol menü kısmı birde her sayfada değişecek olan orta kısım (beyaz kısım).

 

Master-Page-Nasıl-Yapılır_emresupcin

 

ContentPlaceHolder ne işe yarıyor burada buna değineceğiz. Master Page’yi uygulayacak olan sayfaların rahat erişebileceği ve içerik oluşturabileceği alandır. Sayfa içerisinde birden fazla ContentPlaceHolder kullanılabilir. Beyaz kısma Toolbox’dan bir adet ContentPlaceHolder ekleyelim.

 

ContentPlaceHolder ne işe yarıyor burada buna değineceğiz. Master Page’yi uygulayacak olan sayfaların rahat erişebileceği ve içerik oluşturabileceği alandır. Sayfa içerisinde birden fazla ContentPlaceHolder kullanılabilir. Beyaz kısma Toolbox’dan bir adet ContentPlaceHolder ekleyelim.

 

Master Page sayfamıza eklediğimiz ContentPlaceHolder her sayfanın kendi içeriğini oluşturmasını sağlayacaktır.
Peki, Master Page Web formlarında nasıl kullanılır. Uygulamamıza Add New Item kısmını açarak Master Page’li bir web formu oluşturacağız;

 

Add-New-Item_emresupcin

Üstteki grafikte gördüğünüz gibi Web Formunu seçtiğimizde Bize Master Page olacak mı? Diye sormaktadır. Select Master Page seçeneğine check yapalım ve devam edelim. Master Page’li Web formunu eklediğimizde bizden bir Master Page sayfası belirtmemizi istiyor. Tasarımını yapmış olduğumuz masterpage.master sayfasını seçiyoruz ve devam ediyoruz.

Master Page’li bir sayfa oluşturduğumuzda gördüğünüz gibi sadece ContentPlaceHolder kısmına dokunabilmekteyiz. Diğer kısımlar Master Page tarafından kilitlenmiştir. Şimdi ContentPlaceHolder kısmı nasıl kullanılır kısmına gelecek olursak eğer, ContentPlaceHolder kısmını bir aspx sayfası gibi kullanabiliriz.

Hata Yakalama

Try, Catch, Finally
• Bir uygulama, başlangıç ve bitiş arasında yazılan kodlardan ibarettir.

 
• Peki, bu başlangıç ve bitiş arasında neler oluyor?

 
• FormatException, OverFlowException hataları ile karşılaşmamak mümkün değil denecek kadar azdır(Dalgınlığınıza gelebilir)

 
• Bu hataları yakalamak için en çok kullanılan yöntem olan Exception Sınıfından türetilen Try – Catch – Finally bloklarıdır.

 

 

• Basit bir örnekle açıklamak gerekirse; bir projeye başladınız veya basit bir form oluşturdunuz, bu formdan bilgileri almak istiyorsunuz, a değişkenine atadığınız bir textbox ve b değişkenine atadığınız textbox var diyelim ve bu textbox’lardan verileri alıp toplamak istiyorsunuz.

 
• Peki, kullanıcı eğer Integer tipinde bir değer değil de String tipinde(a, b, c…) bir değer girerse ne olacak? Bu tip sorunları Validation Kontrolleri ile veya Client-Side Coding(Sunucu Taraflı Kodlama) ile önleyebilirsiniz.

 
• Bir diğer yol ise Sunucuda oluşabilecek bir hatayı(Dosya yolunuzun, adınızın değişmesi gibi) kullanıcıya bildirip ne yapması gerektiğini iletebilirsiniz. Basit bir uygulama ile Try – Catch – Finally Bloklarımızı inceleyelim;

 

Örnek-1

İki adet textbox, bir adet Buton ve bir adet Label oluşturalım. Textbox’tan gelen Integer verileri toplayıp Label’a yazdıralım?

 

1  protected void Button1_Click(object sender, EventArgs e)
2  {
3     try
4  {
5    int sayi1 = Convert.ToInt32(TextBox1.Text);
6    int sayi2 = Convert.ToInt32(TextBox2.Text);
7    int sonuc = sayi1 + sayi2;
8      Label1.Text = sayi1 + "+" + sayi2 + "=" + sonuc.ToString();
9  }
10     catch (Exception)
11   {
12     Label1.Text = "Yanlış Değer Girdiniz";
13   }
14     finally
15   {
16     TextBox1.Text = "";
17     TextBox2.Text = "";
18   }
19  }

 

•  Try içerisinde kodlarımız çalıştırılıyor, eğer bir hata ile karşılaşılır ise çalışma durduruluyor ve Catch kısmına geçiyor belirtilen bir Exception var ise hata mesajı otomatik olarak yazdırılabiliyor veya Exception belirtmeden manüel olarak da hata mesajı yazılabilir. Finally kısmı ise hata çalışsa da çalışmasa da her iki durumda da çalışır. Biz burada Textbox’ların içini temizledik. Peki, Catch ile başka hangi Exception’ları kullanabiliriz.

 
•  Exception: Varsayılan tiptir, genellikle tek başına kullanılır. Hata durumunda hatayı belirtilen değişkene aktarır.

 
•  FormatException: Formata uygun verinin girilmediği zaman harekete geçer.

 
•  OverFlowException: Burada ise veri taşma yapıyorsa(belirlenen veri tipinin sınırları dışında ise)

 
•  DivideByZeroException: Sıfıra bölünme durumunda harekete geçmektedir. Build edip hata yoksa çalıştıralım. Her iki durumda deneyelim(ilk olarak sayısal değerler girelim, ikinci kez çalıştırdığımızda ise metinsel değerler girelim)

Yazar
Yazar
Bilgisayar Programcısı, Web Tasarımcı, Üniversite Öğrencisi...
Twitter Facebook Google Linkedin Flickr YouTube

Önceki Yazı:ASP.NET Kontrelleri – Devamı…

Sonraki Yazı:Grafik ve Çizim İşlemleri & Validation Kontrolleri Nelerdir?

BENZER YAZILAR
YORUMLAR
SİZ DE CEVAP YAZABİLİRSİNİZ
Bu yazı hakkında görüşünüzü belirtin.

ES Web Tasarım Web Tasarım Blog Teması Emre Supçin Bu tema ES Web Tasarım tarafından düzenlenmiştir. Hiçbir şekilde kopyalanamaz.