|
Dit artikel is gepubliceerd op zondag 31 juli 2011 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.ArgumentExceptionEen ArgumentException is een meer algemeen exceptietype dat optreedt bij één of ander foutieve argumentwaarde : Visual Basic 2010 Broncode 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output ArgumentException : Source array was not long enough. Check srcIndex and
length, and the array's lower bounds. boven
15.7.2. System.ArgumentNullExceptionEen 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 2010 Broncode 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output ArgumentNullException : Value cannot be null.
Parameter name: array boven
15.7.3. System.RankExceptionEen RankException treedt op bij een foutief aantal dimensies van een array. Visual Basic 2010 Broncode 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output RankException : Only single dimension arrays are supported here. boven
15.7.4. System.IndexOutOfRangeExceptionBij het verwijzen naar een element van een tabel op een onbestaande index bekomen we een IndexOutOfRangeException. Visual Basic 2010 Broncode 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output IndexOutOfRangeException : Index was outside the bounds of the array. boven
15.7.5. System.NullExceptionEen 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 2010 Broncode 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output NullReferenceException : Object reference not set to an instance of an
object. boven
15.7.6. System.InvalidCastExceptionBij een foute convertie of cast operatie kan een InvalidCastException optreden. Visual Basic 2010 Broncode Option Strict OffClass 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 SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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 zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|