Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

15.6. Meerdere Catch Gedeeltes

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

In een Try ... End Try statementblok mogen ook meerdere Catch gedeeltes gedefinieerd worden.  Het voordeel hiervan is dat men bij het optreden van verschillende exceptietypes ook een verschillende afhandeling kan voorzien.
Visual Basic 2012 Broncode - Codevoorbeeld 402
Class MultipleCatchPartsExample
    Public Shared Sub Main()
        Try
            Dim dividend As Byte = 10
            Console.Write("Divisor ? : ")
            Dim divisor As Byte = System.Convert.ToByte(Console.ReadLine())
            Dim result As Byte = dividend \ divisor
            Console.WriteLine(result)
        Catch ex As System.DivideByZeroException
            Console.WriteLine("DivideByZeroException occured...")
        Catch ex As System.FormatException
            Console.WriteLine("FormatException occured...")
        Catch ex As System.OverflowException
            Console.WriteLine("OverflowException occured...")
        Catch ex As System.Exception
            Console.WriteLine("Exception occured...")
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Voert de gebruiker hier "2" in dan treedt geen exceptie op en krijgen we gewoon het resultaat op de console te zien.
Console Application Output
Divisor ? : 2
5
Voert de gebruiker hier "0" in dan treedt er een DivideByZero exceptie op.
Console Application Output
Divisor ? : 0
DivideByZeroException occured...
Voer de gebruiker "hello" in dan treedt er een FormatException op.
Console Application Output
Divisor ? : 2
FormatException occured...
Voer de gebruiker bijvoorbeeld "1000" of "-1" in dan treedt er een OverflowException op.   Dit zal hier altijd het geval zijn als het om een numerieke waarde gaat die niet past in het bereik van Byte.
Console Application Output
Divisor ? : 1000
OverflowException occured...
Treedt er eender welke andere exceptie op dan zal die worden afgehandeld in het laatste Catch gedeelte, want deze specifieerd niet welke specifieke exceptie het zou afhandelen.

De volgorde waarin de Catch gedeeltes gedefinieerd staan is wel degelijk van belang.  Plaats je dat laatste Catch gedeelte als eerste, dan zal dat gedeelte alle optredende excepties afhandelen.
Ieder specifiek exceptietype (DivideByZeroException, FormatException, OverflowException, ...) is ten slotte een afgeleid type van Exception
en kan dus ook opgevangen worden in een variabele van dat basistype.

Alle variabelen die hier in de Catch gedeeltes gedeclareerd zijn hebben hier als identifier ex, dit is niet noodzakelijk, je kan zelf vrij bepalen welke identifier je gebruikt.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.