Ana içeriğe atla

Exception - İstisna yönetimi -1

Bu yazıda .NET ile geliştirilmiş tüm uygulamalarda kesinlikle göz ardı edilmemesi gereken bir konuyu yani İstisna (Exception) konusunda bir kaç şey yazmak istedim. Kaliteli yazılım gerekliliğinden olan bu  önemli gereksinim hakkında bilgilerin ilkini böylece paylaşma imkanım olacak.

Kısaca "İstisna (Exception) Nedir" ? : Üretmiş olduğunuz yazılımın hata yönetimi ile hatalar karşısında nasıl davranacağını yada hatalara karşı vereceği tepkilerin ne olacağını belirlemenizdir.Birazdan anlatmaya çalışacağım İstisna Yönetimi kapsamı, geliştirilmiş yazılımların içinde kurgulanması gereken hassas bir işlemdir. Fakat ne yazık ki bırakın bu yönetimi kurgulamayı, bir çok yazılımda hataların ne anlama geldiğini bilmeyen yazılımcılarda gördüğüm olmuştur. Günümüzde kullanıcının ekranda gördüğü ve yazılımın kontrol etmediği bir hata mesajını alarak ne olduğunu anlamaya çalışan yazılım uzmanlarımızda var olduğunu biliyoruz.Evet bu kısa açıklamalar sonrasında İstisna (Exception) hakkındaki ilk bilgilere detaylara şimdi devam edebiliriz



Yazılım geliştirebildiğimiz örneğin Visual Studio.Net gibi derleyicilerin çoğunluğu yazılımın derleme zamanında oluşan hatalar konusunda bilgi verebilmekte. Debug türünde işlemler exception için ilk adım sayılabilir.Hata ayıklamaları çalışmaları geliştirme süreçlerine aittir.Potansiyel  uyumsuzlukların hataya dönüşebilecek durumlarını derleme esnasında anlamamız mümkün. Bu derleme kontrol edilebilen hatalar için hayli önemlidir fakat kontrol edilemeyen hatalar tamamen yazılımın kalitesini düşürür.Bu aşamadan sonra yazılımda oluşabilecek kırılmalardan birebir yazılımcı sorumludur ve yazılımcı yazılımın daha sonrasında neler olabileceğinide düşünmelidir.Buna göre istisna (exception) bilinen iki çerçevede değerlendirilmelidir. Bunların birincisi "kullanıcı kaynaklı" istisnalar diğeri ise "teknik kaynaklı" nedenlerden dolayı olabilecek istisnalardır. Bir kaç örnek verecek olursam örneğin; yazılımın kullanıcıdan beklediği veri değerinden farklı bir giriş yapmasıyla yazılımın durması kullanıcı kaynaklı sayılabilir. Bunun yanı sıra teknik istisnalar daha çok çalışan sistem üzerinde gerçekleşebilir mesela veritabanı bağlantısı sağlanaması, teknik nedenlerden dolayı işlemin tamamlanaması gibi durumlardır. Bu iki tip istisna yönetiminden sonra .Net Kütüphanesindeki Sistem istisnaları sınıfından bahsetmek ve konuyu biraz daha açmak gerekirse, System.SystemException sınıfı uygulamanın çalışmasını engelleyen istisnaları ifade eder. .NET kütüphanesindeki tüm istisnalar (exception) SystemException sınıfını miras alırlar böylece oluşabilecek hataların .NET içerisinden kaynaklandığı belirlenmiş olur.Peki nedir bu sınıflar derseniz kısa tanımları ile açıklamaya çalışayım...

System.OutmemoryException : Yetersiz hafıza
System.InvalidCasrException : Geçersiz tip dönüşümü
System.FormatException : Dizi formatı geçersiz
System..NullReferenceException : Null olan referansa erişim
System..IO.FileNotFoundException : Başvurulan dosya yok
System..WebException : Ağ ile ilgili bir sorun var
System..Xml.XmlException : XML ile ilgili hata olduğunu belirten istisna

Sistem istisnaları gibi yazılımlar içerisinde kullanımı önerilen System.ApplicationException sınıfı kullanılabilmektedir.System.ApplicationException sınıfı System.SystemException sınıfının aksine oluşabilecek hataların NET sınıf kütüphanesinden gelmediğini göstermesi bakımındanda önemlidir. Yukarıda bahsettiğim istisna(exception) tür ve sınıflarından sonra hazırlayacağımız yazılımların içeriği ne olursa olsun belirli bir istina modeli üretmemiz gerektiğini sanırım birazda olsa anlatabilmiş oldum. İstisna(exception) modeli oluşturmak iş katmanı, arayüz katmanı gibi tasarlanabilecek bir bütünlüğe sahip olması gereklidir buna göre platform bağımsızlığınıda göz önünde bulundurularak aşağıda çizmeye çalıştığım türden bir exception istina modelini tüm geliştiriciler önermektedir.



Söz konusu istisna modelini konunun ilerleyen bloglarında kod üretimiyle ve sınıfların nerede kullanılabileceği ile bilgileride vermeyi umuyorum. Aynı zamanda bir sonraki İstisna Exception kullanım bilgileri - İstisna yakalama, Try-Catch ve Finaly ile ilgili bilgileride yine bu blogtan okuyabilirsiniz

Şimdilik hoşcakalın.

Yorumlar

Bu blogdaki popüler yayınlar

Firebird SQL Table oluşturma ve SQL komutları

2 nci  Firebird SQL veritabanı blogunda bu kez mevcut Firebird veritabanına ISQL ile bağlanmayı veritabanı nesnelerini oluşturmayı (create table), Kayıt eklemeyi (ınsert) ve kayıtları izlemeyi (show) ile önemli SQL komutlarını anlatmaya çalışacağım...

Firebird Veritabanı Nedir ? Nasıl Kullanılır

Firebird ücretsiz veritabanı kullanmaya ne dersiniz.Üstelik hiç bir süre ve veri sınırı olmadan kulağa hoş geliyor değilmi.Bu Blogta Borland açık kaynak interbase 6 sürümünden sonra ortaya çıkmış ve gelişimini sürekli sürdürmüş Firebird veritabanına bir göz atıcaz. İnternet üzerinde Firebird ile kaynağa çok sık rastlamazsınız artık bu blogtan Firebird ile ilgili bilgileri takip edebilirsiniz...

Asp.Net Access veritabanina resim ve nesne kaydetmek OLE Nesnesi

Ms Access ile ilgili geçmiş yazılarım arasında biraz vakit geçirmişseniz, Ms Access form uygulamaları yada veritabanı olarak kullanmayı sevdiğimi anlamışsınızdır. Birazdan size anlatmaya çalışacağım konu Ms Access veritabanı olarak kullandığımız bir Asp.Net Web projesinde resimleri ve dosyaları paket halinde veritabanının içine gömmek olacak.Neden bilmiyorum bu konuda Türkçe kaynak yok, merak etmeyin bu yazı size iyi gelecek...