Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Resul Çavuşoğlu
http://www.resulcavusoglu.com
İletişme geçmek için
tıklayın
.
4
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
birlikte
exception
herhangi
ifadesi
ilgili
istisna
istisnalari
main(string[]
makalemizde
mesaji
meydana
nesnesinden
ortaya
siniflari
static
C# / VC#/.NET
Resul Çavuşoğlu
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
C# / VC#/.NET
Yayınlanma Tarihi
:
13.10.2004
Okunma Sayısı
:
35508
Yorum Sayısı
:
0
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
C# / VC#/.NET
/
Exception 2 (İstisnalar)
Exception 2 (İstisnalar)
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
Net platformu üzerinde istisna yönetimi ile ilgili daha önce bir makale yayınlamıştık. Şimdi ki makalemizde kendi istisnalarımızı oluşturmayı, Exception nesnesinden yeni istisna sınıfları türetmeyi ve istisnaları fırlatmayı göreceğiz Programcılara çoğunlukla yazılım geliştirme aracının ( Visual Studio.NET) sunmuş olduğu istisna sınıfları yeterli gelmektedir. Bununla birlikte özel bir bileşen geliştirme aşamasında bazen özel istisnalara ihtiyaç duyarız. Bu bileşen içerisinde meydana gelen hataları kendimiz yönetmek isteriz. Öncelikle istisnaları isteğimize bağlı ortaya çıkartmayı göreceğiz.
THROW ifadesini kullanma :
Throw ifadesi istisnaları istediğimiz anda ortaya çıkartmamıza imkan vermektedir. Throw ifadesi Exception sınıf veya bu sınıftan türetilmiş herhangi bir istisna sınıfı için kullanılır. Throw ifadesinin kullanıldığı noktada program durarak; istenilen istisnayı üretir. Bu istisna daha önceki makalemizde anlattığımız gibi yönetilebileceği gibi, hata mesajından da yararlanılabilir. Aşağıda throw kullanımına ait bir kaç örnek bulunmaktadır.
using System;
namespace Exception2
{
class Istisnalar
{
[STAThread]
static void Main(string[] args)
{
throw new Exception();
}
}
}
Yukarıda ki örnekte istisna temel sınıf olan Excepition nesnesinden oluşturulmuştur. Bu hata try catch, finally blokları ile yakalanabilir. Exception nesnesinin 3 çeşit yapıcısı bulunmaktadır. Farklı yapıcıların kullanıldığı bir örnek aşağıda bulunmaktadır.
using System;
namespace Exception2
{
class Istisnalar
{
[STAThread]
static void Main(string[] args)
{
try
{
throw new Exception(); // İstisna oluşur fakat herhangi bir özel mesaj yoktur.
throw new Exception("Benim istisna mesajım"); // İstisna oluşur ve özel hata mesajı üretirlir.
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw new Exception("Hata Meydana Geldi",e); // Hata mesajı ile birlikte dışardan oluşan hata sınıfa gönderilir.
}
}
}
}
Yukarıda ki örneğimizde Exception temel istisna sınıfı kullanılarak 3 farklı şekilde istisna ortaya çıkartılmıştır. 1. şekilde ortaya çıkan hata ile ilgili herhangi bir mesaj verilmekmektedir. 2. şekilde ise ortaya çıkan istisna ile birlikte bir hata mesajı da mevcuttur. 3. şekilde ise ortaya çıkan genel bir hatadan isteğimize bağlı bir hata üretilmesi sağlanmış ve dışarıda oluşan genel hata kullanılan hata sınıfına bildirilmiştir. Şu an için son yöntem bir şey ifade etmiyor gibi gözüksede ileriki satırlarımızda kendi istisna nesnemizi oluşturduğumuzda innerexception diye adlandırılan bu istisna referansı tarafımızca kullanılabilecektir.
Throw ifadesi Exception sınıfından türetilmiş istisna sınıfları içinde kullanılabilir.
using System;
namespace Exception2
{
class Istisnalar
{
[STAThread]
static void Main(string[] args)
{
try
{
throw new DivideByZeroException(); // sıfıra bölünme istisnası isteğe bağlı oluştu.
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
Yukarıdaki örneğimizde DivideByZeroException istisnasının ortaya çıkmıştır. Bu istisna sonucu olarak ekrana
Attampted to divide by zero
istisna mesajı gözükecektir.
Exception nesnesinden istisna sınıfları türetme
:
İstisna sınıflarının tamamı Exception temel sınıfından yaratılmıştır. Her alanda çeşitli istisna sınıfları olduğunu önceki makalemizde söylemiştik. Peki çok özel bir istisna sınıfına ihtiyacımız olursa ne yapmamız gerekir. Başlığımızdan da anlaşılacağı gibi kendi sınıfımızı türetmemiz yeterlidir. Bu sınıf içerisinde istisna meydana geldiğinde istediklerimizi yapacak kodları bulundurabiliriz.
Temel Exception sınıfı üzerinde çeşitli özellikler ve methodlar bulunmaktadır. Bu özellik ve methodlar ezilerek kullanılabilceği gibi isteklerimiz doğrultusunda yeni özellikler ve methodlarda ekleyebiliriz. Oluşturulan bu istisna sınıf throw ifadesi ile ortaya çıkartılabilir.
Şimdi bilinenlerden farklı ihtiyaçlarımıza bağlı bir istisna sınıfı oluşturalım. Bu istisna sınıfı her kullanıldığında ürettiği hata mesajını bir dosyanın içinde barındırabilsin. Tabiki ihtiyaçlarınız doğrultusunda bu bir veritabanı da olabilir.
using System;
namespace Exception2
{
class Istisnalar
{
[STAThread]
static void Main(string[] argös)
{
try
{
throw ResulException("Hata Oluşturuyorum");
}
catch(ResulException e)
{
e.LogYaz("c:\hatalar.txt");
Console.WriteLine(e.Message);
}
}
}
class ResulException : Exception
{
public ResulException():base()
{
}
public ResulException(string tempmessage):base(tempmessage)
{
}
public void LogYaz(string logfile)
{
......................................
...............................
...............................
}
}
}
Örneğimizde Exception sınıfından ResulExcepiton isminde bir sınıf türettik. Bu sınıf Exception sınıfına ait yapıcı methodlara base göndermese yapıyor. Temel olarak Exception sınıfının özelliklerini kullanabiliyor. Bu özelliklere ek olarak belirtilen dosya içine isteğimize bağlı olarak hata mesajlarını yazıyor. Bu şekilde ki istisna sınıfı kullanarak bir hatalar günlüğü tutmamızda mümkün olabilir.
İstisnalar ile ilgili kuralımızı yeniliyoruz. Gerekmedikçe istisna kullanmak program performansını düşürür. Fakat kritik noktalarda istisna kullanmak ve bu istisnaları yakalamak büyük kayıpları engeller. Bir sonraki makalemizde görüşmek üzere
Resul ÇAVUŞOĞLU
c.resul@concort.com
Makale:
Exception 2 (İstisnalar) C#, Visual C# ve .NET Resul Çavuşoğlu
Yazılan Yorumlar
Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl