ProgramlamaVB.NET Geliştirici

Kullanıcı hatalarının (Özel İstisnalar) Visual Basic'te nasıl işleneceğini ve bunun ne zaman gerekli olduğunu nasıl gerçekleştirirsiniz?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Visual Basic .NET'te uygulamada ortaya çıkan belirli hataları daha belirgin bir şekilde belirtmek için özel istisna türleri oluşturabilirsiniz. Bunun için yeni bir sınıfı System.Exception'dan (veya onun alt sınıflarından) türetmek gerekir ve gerekli olduğunda ek bilgi iletmek için yeni özellikler ekleyebilirsiniz.

Özel İstisnalar, belirli iş senaryoları için özel bir işleme ihtiyacınız olduğunda kodun daha okunabilir ve sürdürülebilir olmasını sağlar.

Örnek:

Public Class InvalidUserNameException Inherits ApplicationException Public Sub New(message As String) MyBase.New(message) End Sub End Class ' Kullanım: Sub ValidateUserName(userName As String) If userName = "" Then Throw New InvalidUserNameException("Kullanıcı adı boş olamaz") End If End Sub

Kandırmaca Soru.

Soru: "Visual Basic'te Throw "Hata" ile bir dizeyi atabilir miyiz ve bu Try...Catch'i yakalar mı?"

Cevap: Hayır, bu şekilde yapmak mümkün değil. Throw ifadesi bir Exception nesnesi gerektirir. Bir dizenin atılmaya çalışılması (Throw "hata") bir derleme hatası ile sonuçlanır. Her zaman bir Exception sınıfının veya onun alt sınıfının yeni bir örneğini oluşturmak gerekir.

Hatalı kod örneği:

' Bu hata verecektir! Throw "Hata!"

Doğru kod örneği:

Throw New Exception("Hata!")

Konunun inceliklerinden dolayı gerçek hatalar için örnekler.


Hikaye:

Büyük bir projede, geliştiriciler Throw "Geçersiz veriler!" kullanarak istisnaları atıyordu. Bu, kodun statik kontrolü geçmediği için üretimde derleme hatalarına yol açıyordu. Doğru istisna işlemenin olmaması, yayını bir hafta geciktirdi — kodda dizeleri kullanarak throw edilen tüm durumları bulmak ve yeniden yazmak zorunda kaldık.


Hikaye:

Ekip, InnerException parametresi ile yapıcı eklemeyen özel istisnalar oluşturdu. Karmaşık hataları teşhis ederken, orijinal istisnanın "iç içe" alınamaması nedeniyle çağrı yığını kayboldu. Sonuç olarak, hatanın asıl nedenini bulmak zorlaştı.


Hikaye:

Bir medya uygulamasında, özel istisna gereksiz yere çok sık kullanıldı (örneğin, her hatalı veri girişinde). Sonuç olarak, sistemin performansı düştü — çünkü istisna oluşturma işlem açısından maliyetlidir. İnceleme sonrası bu tür istisnaların bir kısmı normal koşul kontrolleri ile değiştirildi.