Yapılandırılmış özel durum işleme Visual Basic 2005 veya Visual Basic .NET'te nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 315965 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, yapılandırılmış özel durum işleme Visual Basic 2005 veya Visual Basic .NET'te kullanımı gösterilmiştir.

Gereksinimler

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gereken hizmet paketleri yer almaktadır:
  • Visual Basic .NET ya da Visual Basic 2005
Bu makalede şu konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Visual Basic .NET ya da Visual Basic 2005
  • Microsoft Visual Studio .NET veya Microsoft Visual Studio 2005

Yapılandırılmış özel durum işleme

Visual Basic .NET ya da Visual Basic 2005 önceki sürümleri, Microsoft Visual Basic içinde kullanılabilir olduğu "On Error Goto" hata işleme için güçlü, daha okunabilir bir alternatif sağlar yapılandırılmış özel durum işleme sağlar. Yapılandırılmış özel durum işleme hata işleyicileri aynı yordamı içinde diğer hata işleyicisi içinde iç içe yerleştirmek izin verdiğinden daha güçlüdür. Ayrıca, yapılandırılmış özel durum işleme için benzer bir blok sözdizimi kullanır...Başka...End IF ifadesi. Bu Visual Basic .NET ve Visual Basic 2005 kod daha okunaklı ve bakımını daha kolay yapar.

Not: Visual Basic .NET ya da Visual Basic 2005 "On Error Goto" sözdizimi geriye dönük uyumluluk için korunur. Visual Basic .NET ya da Visual Basic 2005 kodda bu sözdizimini kullanmaya devam edebilirsiniz. Ancak, yapılandırılmış özel durum işleme ve Hata deyimleri aynı yordamı içinde birleştiremezsiniz. Ne zaman Microsoft, kullanmanızı önerir yeni kod yazma, özel durum işleme yapılandırılmış.

Yapılandırılmış hata işleme için temel sözdizimi aşağıdaki gibidir:
Try
   'Code that may raise an error.
Catch
   'Code to handle the error.
Finally
   'Code to do any final clean up.
End Try
				
Deneyin ve End Try deyimlerini gereklidir. Kodunuzda bunlardan en az birini içermelidir olsa Catch ve Finally ifadelerini, gerekmez. Her Catch bloğu özel hata işleme için birden çok Catch deyimleri de belirtebilirsiniz.

Bir özel durumu yakalar

  1. Visual Studio .NET veya Visual Studio 2005 başlatın.
  2. Visual Basic 2005 veya Visual Basic .NET'te yeni bir konsol uygulama projesi oluşturun.
  3. Sub Main yordamı aşağıdaki kodu ekleyin:
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try
    					
  4. Hata ayıklama menüsünde, uygulama çalıştırmak için Başlat ' ı tıklatın. Bir sayıyı sıfıra bölme kod çalışır. Bu, bir bölme sıfır özel durum tarafından neden olan geçersiz bir işlemdir. Neyse ki, bu hata Catch bloğu yakalar ve konsol penceresi aşağıdaki hata iletisini görüntüler:
    A run-time error has occurred
    						
  5. Konsol penceresini kapatın.

Birden çok özel durumları yakalamak

Bu bölümde, birden çok Catch ifadeleri farklı hataları işlemek için nasıl kullanılacağını gösterir.
  1. Bir önceki bölümde oluşturulan konsol uygulama projesi açın.
  2. Sub Main yordamı, aşağıdaki kod önceki bölümdeki kopyaladığınız kodu değiştirin:
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0
    
    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Finally
      Console.ReadLine()
    End Try
    						
    Bu kod iki Catch bloklarını içerir: biri önceki bölme hatası yakalamak için diğeri yeni taşma hatası yakalamak için.
  3. Hata ayıklama menüsünde, uygulama çalıştırmak için Başlat ' ı tıklatın. Konsol penceresinde, aşağıdaki hata iletisini görüntüler:
    Error: Overflow
    						
  4. Konsol penceresini kapatın.
  5. Her zaman oluşabilecek tüm hata tahmin edemez çünkü, önceden tahmin edilemeyen özel durumlar için tüm Catch bloğu ekleyebilirsiniz. Örneğin, önceden tahmin edilemeyen hataları yakalamak ve uygun hata iletisini görüntülemek için Finally ifadesi önce aşağıdaki kodu ekleyin:
    Catch exc As Exception
    Console.WriteLine("Error: " & exc.Message)
    					
  6. Dosya menüsünde Close Solution' ı tıklatın.

Bir özel durum

Yapılandırılmış özel durum işleme Catch deyimi bir özel durumu yakalamak için kullanır. Yapılandırılmış özel durum işleme de bir özel durum için bir yol sağlar. Örneğin, bir özel durum, veri doğrulama Özelliği ayarlama yordamı içinde bir iş kuralı ihlal edilirse bir hata vermesini isteyebilirsiniz çünkü gerçekleştirdiğinizde yararlı olur.
  1. Visual Studio .NET veya Visual Studio 2005 başlatın.
  2. Visual Basic 2005 veya Visual Basic .NET'te yeni bir konsol uygulama projesi oluşturun.
  3. Proje menüsünde, Add Class' ı tıklatın.
  4. Add New Item penceresinde yazın clsPerson.vbName metin kutusuna ve sonra da Tamam' ı tıklatın.
  5. Public Class clsPerson içine aşağıdaki kodu Ekle...Son sınıf ifadeleri:
    Private mintAge As Integer
    
    Public Property Age() As Integer
      Get
        Age = mintAge
      End Get
      Set(ByVal Value As Integer)
        If Value >= 0 Then
          mintAge = Value
        Else
          Throw New ArgumentException ("Age cannot be negative")
        End If
      End Set
    End Property
    						
    Bu kod, Age özelliği oluşturur. Bir kişinin negatif yaş olamayacağından, kullanıcı sınıfının bir sayı sıfırdan için geçerlilik süresi ayarlamak çalışırsa bir hata ortaya çıkar.
  6. Module1.vb Sub Main yordamı, aşağıdaki kodu ekleyin:
    Dim p As New clsPerson()
    
    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
    					
  7. Hata ayıklama menüsünde, uygulama çalıştırmak için Başlat ' ı tıklatın. Konsol penceresinde, aşağıdaki hata iletisini görüntüler:
    Age cannot be negative
    						
  8. Konsol penceresini kapatın.

Tam kod listesi

Bir özel durumu yakalar

Module Module1

  Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a = b \ c
    Catch exc As Exception
      Console.WriteLine("A run-time error occurred")
    Finally
      Console.ReadLine()
    End Try

  End Sub

End Module
				

Birden çok özel durumları yakalamak

Module Module1

  Sub Main()
    Dim a As Integer = 2147483647
    Dim b As Integer = 0
    Dim c As Integer = 0

    Try
      a += 1
    Catch exc As DivideByZeroException
      Console.WriteLine("Error: Divide by zero")
    Catch exc As OverflowException
      Console.WriteLine("Error: Overflow")
    Catch exc As Exception
      Console.WriteLine("Error: " & exc.Message)
    Finally
      Console.ReadLine()
    End Try


  End Sub

End Module
				

Bir özel durum

Module Module1

  Sub Main()
    Dim p As New clsPerson()

    Try
      p.Age = -1
    Catch exc As Exception
      Console.WriteLine(exc.Message)
    Finally
      Console.ReadLine()
    End Try
  End Sub

End Module

Public Class clsPerson

  Private mintAge As Integer

  Public Property Age() As Integer
    Get
      Age = mintAge
    End Get
    Set(ByVal Value As Integer)
      If Value >= 0 Then
        mintAge = Value
      Else
        Throw New ApplicationException("Age cannot be negative")
      End If
    End Set
  End Property

End Class
				

REFERANSLAR

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerine bakın:
Hata işleme VB.NET yolu: yaşayan istisnalar ( Visual Basic geliştiricilerine makale)
http://msdn.microsoft.com/en-us/library/aa227603 (v=vs.60).aspx

Nasıl bir özel durumu yakalayacaks?n?z
http://msdn.microsoft.com/en-us/library/ys1b32h3 (v=vs.80).aspx

Nasıl bir özel durum
http://msdn.microsoft.com/en-us/library/z7w9ff54 (v=vs.80).aspx

Özellikler

Makale numarası: 315965 - Last Review: 29 Ekim 2013 Salı - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 315965

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com