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.
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
Yorum Gönder