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.7. Soorten Exceptions

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.

Er zijn vele soorten exceptietypes voorgedefinieerd, een overzicht van enkele exceptietypes vind je in onderstaande inheritance-hiërarchie :
-> System.Exception
    -> System.SystemException
        -> System.ArithmeticException
           -> System.DivideByZeroException
           -> System.OverflowException
        -> System.ArgumentException
           -> System.ArgumentNullException
           -> System.ArgumentOutOfRangeException
        -> System.IndexOutOfRangeException
        -> System.NullReferenceException
        -> System.RankException
        -> System.InvalidCastException
Zoals je ziet hebbe alle specifieke exceptietypes zowel System.Exception als System.SystemException als basistype.  We komen later tot het nut van deze extra onderverdeling met SystemException.

15.7.1. System.ArgumentException

Een ArgumentException is een meer algemeen exceptietype dat optreedt bij één of ander foutieve argumentwaarde :
Visual Basic 2012 Broncode - Codevoorbeeld 403
Class ArgumentExceptionExample
    Public Shared Sub Main()
        Dim array1() As Byte = New Byte() {1, 2, 3}
        Dim array2(2) As Byte
        Try
            Array.Copy(array1, array2, 4)
        Catch ex As ArgumentException
            Console.Write("ArgumentException : " & ex.Message)
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
ArgumentException : Source array was not long enough. Check srcIndex and
length, and the array's lower bounds.

15.7.2. System.ArgumentNullException

Een meer specifiek, en bijgevolg van ArgumentException overgeërfd exceptietype is ArgumentNullException die optreedt wanneer Null of dus Nothing als argumentwaarde wordt doorgegeven daar waar dit niet gewenst is.
Visual Basic 2012 Broncode - Codevoorbeeld 404
Class ArgumentNullExceptionExample
    Public Shared Sub Main()
        Dim array1 As Byte()
        Try
            Array.Sort(array1)
        Catch ex As ArgumentNullException
            Console.Write("ArgumentNullException : " & ex.Message)
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
ArgumentNullException : Value cannot be null.
Parameter name: array

15.7.3. System.RankException

Een RankException treedt op bij een foutief aantal dimensies van een array.
Visual Basic 2012 Broncode - Codevoorbeeld 405
Class RankExceptionExample
    Public Shared Sub Main()
        Dim array1(9, 4) As Byte
        Try
            Array.Sort(array1)
        Catch ex As RankException
            Console.Write("RankException : " & ex.Message)
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
RankException : Only single dimension arrays are supported here.

15.7.4. System.IndexOutOfRangeException

Bij het verwijzen naar een element van een tabel op een onbestaande index bekomen we een IndexOutOfRangeException.
Visual Basic 2012 Broncode - Codevoorbeeld 406
Class IndexOutOfRangeExceptionExample
    Public Shared Sub Main()
        Dim array1(9) As Byte
        Try
            array1(10) = 10
        Catch ex As IndexOutOfRangeException
            Console.Write("IndexOutOfRangeException : " & ex.Message)
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
IndexOutOfRangeException : Index was outside the bounds of the array.

15.7.5. System.NullException

Een veelvoorkomende exceptie is de NullException die bijvoorbeeld optreedt bij het aanroepen van een member op een objectexpressie die naar Null of dus Nothing evalueert.
Visual Basic 2012 Broncode - Codevoorbeeld 407
Class NullReferenceExceptionExample
    Public Shared Sub Main()
        Dim arrayList1 As ArrayList
        Try
            arrayList1.Clear()
        Catch ex As NullReferenceException
            Console.Write("NullReferenceException : " & ex.Message)
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
NullReferenceException : Object reference not set to an instance of an
object.

15.7.6. System.InvalidCastException

Bij een foute convertie of cast operatie kan een InvalidCastException optreden.
Visual Basic 2012 Broncode - Codevoorbeeld 408
Option Strict Off
Class InvalidCastExceptionExample
    Public Shared Sub Main()
        Try
            Dim value As Integer = "abc"
        Catch ex As InvalidCastException
            Console.Write("InvalidCastException : " & ex.Message)
        End Try
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
InvalidCastException : Conversion from string "abc" to type 'Integer' is
not valid.
Bemerk dat dit voorbeeld enkel kan functioneren onder permissive type semantics (Option Strict Off).  Strikt gezien kan men natuurlijk aan een Integer variabele geen waarde toekennen die geformuleerd is aan de hand van een String expressie.

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