| Editor Login | Register | ||
| > Bilgisayar > Nesne Programlama > visual basic |
|
|
| Visual Basic 6.0dan Visual Basic.NET’e Geçiş – 3 Hata Takibi | ||||||||||||||||||||||||
Yazdığımız uygulamalarda her zaman kullanılan ve uygulamanın takip edildiği sistem hata takip sistemidir. Kullanıcı içinde, uygulamayı yazan içinde yararlı bir sistemdir. Kullanıcı açısından baktığımızda hata durumlarında anlamayacağı mesajlar ile karşılaşmamalı. Bu hiç hoş bir durum olmaz. Kullanıcıyı anlayacağı dilde bir hata mesajı ile karşılaştırmalıyız. Ayrıca uygulamanın gidişatını takip etmek amacı ile bizlerin yani programcıların anlayacağı dilde hataları kodları ile birlikte bir yerde tutmamız gerekli. Bu yazı ile Visual Basic.NET ile hata takibi(Error Handling) konusuna da giriş yapmış oluyoruz. Bir sonraki yazılarda bu sınıf ile yapılabileceklere ayrıntılı olarak değineceğim. Visual Basic 6 programcıları bu durumlar için Err objesini kullanıyorlar. Visual Basic 6 içerisinde On Error Resume Next satırını uyguladığınız zaman oluşabilecek tüm hataları program göz ardı eder. Ardından hata oluşabilecek program bölümlerine; If Err Then ..... End If Kod satırını uyarladıkları zaman hatayı yakalarlar. Ancak Visual Basic.NET’e geçerken bu uygulamayı komple unutuyoruz. Onun yerine öğrenmemiz gereken yeni bir blok karşımıza çıkıyor. Try – Catch – Finally blokları. Bu blok tanımlaması ile hataları yakalayıp ona göre yapacağımız işlemleri belirliyoruz. Visual Basic 6 programcıları için konuşmak gerekirse Visual Basic 6’daki Err objesi ile aynı olmasa da ana amaç olarak aynı görebilirsiniz. Visual Basic 6’da her hata ihtimalinde If Err Then şart satırı ile takip etmemiz gerekli. Ancak burada kullanımı daha kolay bir sistem ile karşı karşıyayız. Kullanımı; Try [Try durumunda yapacağı işlemler] [ Catch [ exception_adı [ As type ] ] [ Catch durumunda yapacağı işlemler ] ] [ Exit Try ] ... [ Finally [ Finally durumunda yapacağı işlemler ] ] End Try Visual Basic 6 programcıları için farklı bir blok tanımlama. Bu kod bloğunun ne anlama geldiğini açıklayalım. Bahsettiğimiz hata takibi durumları için uygulamamız gereken kod satırı. Kod içerisinde yaptırdığımız bir işlemden sonra bu bloğu uygularsak ilk önce Try durumuna gelecektir. Buda hata yoksa, herşey düzgün gidiyorsa demek. Eğer hata yoksa yapacağı işlemleri belirtiriz. Hata var ise Catch bloğuna düşecektir. Burada da hata durumunu özel olarak bile belirtebiliriz. Bunun ayrıntılı bilgisini ilerde vereceğim. Hata durumunda buraya düşeceği için yapması gereken işlemleride belirtebiliriz. Exit Try ifadesi ise bu kod bloğunda işlemi bitirir ve Finally bloğuna düşer. Bir örnek ile sistemin nasıl çalıştığını görelim. Örneğimizde bir tam sayıyı 0(Sıfır) ile bölmeye çalışalım. Bu hatalı bir durumdur. Bunu nasıl yakaladığını görelim. Uygulamamız gereken kod satırı; Sub Bolme_Islemi Dim iSay1 As Integer Dim iSay2 As Integer Dim iSonuc As Integer iSay1 = 5 iSay2 = 0 Try iSonuc = iSay1 / iSay2 Catch ex As System.OverflowException MessageBox.Show("Bir sayıyı 0a bölmeye çalışıyorsunuz. Lütfen tekrar deneyiniz.") Finally MessageBox.Show("Sonuç=" & iSonuc) End Try End Sub Burada Integer veri tipinde iSay1, iSay2 ve iSonuc isimli üç tane değişken tanımlıyorum. iSay1 değişkenime 5 tam sayı değerini atıyorum. iSay2 değişkenime ise 0(Sıfır) değeri atıyorum. Try – Catch – Finally bloğunu yerleştiriyorum. Try durumunda yapmak istediğim işlemi yazıyorum. İlk önce program bu bloğa düşecektir ve iSay1 ile iSay2 değişkenlerindeki değerleri bölerek sonucu iSonuc değişkenine aktarmak isteyecektir. Ancak bu bir hatalı işlem olduğu için hemen Catch bloğuna düşüp belirtilmiş olduğumuz System.OverflowException hata durumunu kontrol edecektir. Gerçekten de bu işlemin sonucunda bu hata oluşacağı için ekrana çıkartmak istediğimiz mesajı çıkaracaktır. Hemen ardından Finally bloğuna düşüp yapmak istediğimiz olan son işlemi yani ekrana iSonuc değerini çıkaran mesajı gösterecektir. Bu işlemler sonucunda programınız kapanmadan işlemini gerçekleştirmez ve sizi gerekli şekilde uyarır. Eğer bu şekilde bir hata takibi durumu kullanmazsanız program kırılacaktır. Çıkacak hata mesajı System.OverflowException olacaktır. Biz Try – Catch bloğunda böyle bir durum olabileceği ihtimaline karşı Catch ex As System.OverflowException kod satırını uyguladığımız için bize bu mesajı çıkarmıyor. Exception’ın Özellikleri ve Metotları
|
|
| Bağlantılar: bilgininefendisi.net |
| Open Source Document Project | AUP&TOS |