BASKALE.NETGOO

BASKALE.NETGOO

BLUE-MOON-HACKERTEAM
 
AnasayfaAnasayfa  GaleriGaleri  Üye ListesiÜye Listesi  Kullanıcı GruplarıKullanıcı Grupları  Kayıt OlKayıt Ol  Giriş yapGiriş yap  
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
En son konular
» Delphi Derleyicileri Başlığı
Paz Şub. 20, 2011 12:53 am tarafından byhuysuz

» Modemi hızlandırma
C.tesi Şub. 19, 2011 2:17 pm tarafından byhuysuz

» Visual Studio 2010 Yükle Sadece [10mb]
C.tesi Şub. 19, 2011 12:16 pm tarafından byhuysuz

» Adobe'nin Bütün Versiyonları İçin Crack
Salı Şub. 15, 2011 9:25 pm tarafından byhuysuz

» 1st javascript Editor Professional Edition v5.1 | 8.11 Mb
Salı Şub. 08, 2011 3:35 pm tarafından byhuysuz

» 30 Sn'de [Pc Çökertme + Panzehir]
Ptsi Şub. 07, 2011 4:13 pm tarafından byhuysuz

» Java Görsel Eğitim Seti
Ptsi Ağus. 09, 2010 9:32 pm tarafından admin

» Programlamaya Nereden Baslamali?
Ptsi Ağus. 09, 2010 9:30 pm tarafından admin

» C / C++ E-Book Paylaşımı
Ptsi Ağus. 09, 2010 9:29 pm tarafından admin

» C dilinde basit bir mayın tarlası programı
Ptsi Ağus. 09, 2010 9:05 pm tarafından admin

» Delphi 7 Katılımsız Full | 150mb |
Ptsi Ağus. 09, 2010 8:58 pm tarafından admin

» Delphi 1
Ptsi Ağus. 09, 2010 8:57 pm tarafından admin

» İnternetle İlgili Doğru Sanılan Efsaneler
Ptsi Ağus. 09, 2010 8:54 pm tarafından admin

» Tek Tip Şarj Cihazı Dönemi Başlıyor ..
Ptsi Ağus. 09, 2010 8:53 pm tarafından admin

» Türk mucitten 7 boyutlu sinema
Ptsi Ağus. 09, 2010 8:52 pm tarafından admin

» Schrödinger’in Kedisi | Hem Ölü Hem Canlı
Ptsi Ağus. 09, 2010 8:51 pm tarafından admin

» Win Vista Püf Noktaları ve Optimizasyon
Ptsi Ağus. 09, 2010 8:48 pm tarafından admin

» Bölüm İndex
Ptsi Ağus. 09, 2010 8:47 pm tarafından admin

» Win 7 Püf Noktaları ve Optimizasyon
Ptsi Ağus. 09, 2010 8:45 pm tarafından admin

» Win Xp Püf Noktaları ve Optimizasyon
Ptsi Ağus. 09, 2010 8:44 pm tarafından admin

» Yeni Güvenlik Uygulamalarımız (2010)
Ptsi Ağus. 09, 2010 8:43 pm tarafından admin

» Önemli Olan Güvenlik İse?
Ptsi Ağus. 09, 2010 8:42 pm tarafından admin

» Perl ve Python Exploit Bilgisi (Bug-Res)
Ptsi Ağus. 09, 2010 8:41 pm tarafından admin

» Sonu Olmayan Bir Hack Dökümanı Bug-Res
Ptsi Ağus. 09, 2010 8:40 pm tarafından admin

» Hacking Interface Kitabı - X-Master
Ptsi Ağus. 09, 2010 8:38 pm tarafından admin

» Bug Nedir? Nasıl Oluşur/Bulunur? Bug-Res
Ptsi Ağus. 09, 2010 8:37 pm tarafından admin

» Gerçek Pc Hızlandırma(Uçak Gibi)
Cuma Ağus. 06, 2010 8:46 pm tarafından admin

» 50 Adet Hack Videosu Türkçe [Videolar]
Cuma Ağus. 06, 2010 8:45 pm tarafından admin

» İndexinize Bilgisayarınızdan Arka Plan Müziği||Mr.SoLucaN
Cuma Ağus. 06, 2010 8:44 pm tarafından admin

» Hatırlamadığınız Şifreyi Kırın! 2010
Cuma Ağus. 06, 2010 8:41 pm tarafından admin

» Adsl Hack - Adsl Hackleme - Adls Hack 2010
Cuma Ağus. 06, 2010 8:01 pm tarafından admin

» 2009 Full Anti-Virus Programları
Cuma Ağus. 06, 2010 7:58 pm tarafından admin

Giriş yap
Kullanıcı Adı:
Şifre:
Beni hatırla: 
:: Şifremi unuttum

Paylaş | 
 

 C# ve istisnalar

Önceki başlık Sonraki başlık Aşağa gitmek 
YazarMesaj
admin
spyajan
spyajan


Aktiflik :
0 / 9990 / 999

Mesaj Sayısı : 1028
Yaş : 27
Kayıt tarihi : 23/07/08

MesajKonu: C# ve istisnalar   Paz Tem. 27, 2008 10:03 pm

Genel olarak c# ta karsilasacagimiz istisnalar baslangiç düzeyinde ele alinmistir






c# ta istisnalarla ugraşmak..

İyi bir programcı aslında iyi bir problem avcısıdırda. Bu nedenle yazdıgımız programlarda problemlerim oluşmasını engellemek veya bu problemleri dogru bir şekilde kullanıcıya bildirmek bence çok önemli.. Örnegin kullanıcı varolmayan bir dosyayı açmaya çalıştı , bir diziye çok fazla deger atandı, bir prosedür boş bir degeri , referans degişken olarak kullanmaya çalıştı veya bir string degeri bir tamsayı degişkene atatamaya çalıştınız...vs

C#, istisnalarla ugraşırken bize iki anahtar kelime sunar try ve catch. Kodunuzda istisnaya yol açabilecek satırları try ifadesi ile sararsınız. Bu ifade ile sardıgınız satırlarda bir istisna oldugunda bu catch ile yakalanır. Bir örnekle inceleyelim..

using System;
class Hata
{
public static void Main()
{
int[] diziler=new int[4];
try {
for(int i=0;i<5;i++)//dizinin 5 elemanı yok diziler=i;
}
catch {
Console.WriteLine("bir hata var");
}
}
}

Bu programı çalıştırdıgınızda ekrana "bir hata var" mesajı gelecektir. çünkü 4 elemanlı dizinin olmayan elamanlarına ulaşılmaya çalışılmakta ve buda bir istisnaya neden olmaktadır. oluşan istisna try ifadesinin sardıgı kısımda gerçekleştiginden kontrol catch ifadesine aktarılmıştır ve buda ekrana bizim mesajımızın gelmesini saglamıştır.

C# ,System isim alanı içerisinde Exception tipi tanımlanmıştır. Oluşan istisnaların tanımlarına ulaşmak istiyorsak Exception kullanırız. yukarıdaki programımızda catch kısmını şu şekilde degiştirelim..

catch(Exception e) {
Console.WriteLine("bir hata var hata:{0}",e);
}

programımız çıktı olarak e degişkenine aktarılan istisnayı yani IndexOutOfRangeException bilgisini aktaracaktır. Progaramınız içerisinde istisna olsada olmasada çalıştırılmasını istediginiz kod blokları var ise C# bunu yapmak için finally anahtar kelimesini kullanır. finally blogu içerisine yazdıgınız kod herzaman çalıştırılır. Yukarıdaki örnegimizi düzenlerisek:

catch(Exception e) {
Console.WriteLine("bir hata var:{0}",e);
}
finally { Console.WriteLine("hata işleme sona erdi"); }

finally blogu hata oluşmasa bile herzaman çalışacaktır..

C# ta istisnalara hükmetmek

Eger kendi istisna sınıflarınızı tanımlamak istiyorsanız c# buna imkan saglamaktadır. Kendiniz bir istisna sınıfı yarattı iseniz bir şekilde bu istisnanın oluşmasını isteyeceksinizdir. Bunu saglamak içinde throw anahtar kelimesini kullanmalısınız. Yukarıdaki örnekte tanıştıgımız dizi ile ilgili istisnayı hatırlarsak..

using System;
class HataYap
{
public static void Main()
{
Console.WriteLine("hata öncesi");
throw ( new IndexOutOfRangeException );
Console.WriteLine("hata sonrası");
}
}

bu programcık IndexOutOfRangeException istisnasın fırlatmaktadır. Yani sistem bu istisna oluşmuş gibi davranılmaya zorlanılmaktadır. try ve catch kullanmış olsaydık programımız hemen catch bloguna dallanmış olacaktı..

Kendi istisnalarımızla kodu geliştirmek

C# ta kendi istisna sınıflarınızı oluşturabileceginizden yukarıda bahsettim. Bir istisna sınıfını aşagıdaki şekilde bildiririz.

class hataismi : Exception { }

buradaki Exception kelimesi muhakkak kullanılmalıdır. çünkü catch( Exception e ) ifadesini hatırlarsak , hatalar bu sınıftan türedilmektedir. bir örnekle açıklayalım

using System;
class istenmeyenKelime : Exception { }
class Programim
{
class Kelimeler
{
static public string kelime(string yazilan)
{
if(yazilan="geveze")
throw( new istenmeyenKelime ());
return "uyari";
}
}
public static void Main()
{
string sonuc;
try
{
sonuc=Kelimeler.kelime("geveze");
Console.WriteLine("bir hata oldu:{0}",sonuc);
}
catch(istenmeyenKelime)
{
Console.WriteLine("hata oluştu");
}
}
}

Örnegimizde kullanıcının geveze kelimesini girdigi varsayılarak programın istenmeyenKelime istisnasını üretmesi istenmiştir. try ,catch ile bu istisna yakalanmış ve uygun çıktılar gösterilmiştir. İstisna tanımımızdaki bloklar arasına uygun mesajlar koyarak

class istenmeyenKelime : Exception { Console.WriteLine("bu kelimeyi yazma"); }

programınızı geliştirebilirsiniz.
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://baskale.netgoo.org
 
C# ve istisnalar
Önceki başlık Sonraki başlık Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
BASKALE.NETGOO :: PROGRAM DİLLERİ (giriş) :: C / C++ / C#-
Buraya geçin: