|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Het is mogelijk om aan een Catch een When clausule toe te voegen. Deze When clausule geeft aan dat aan een bepaalde conditie moet voldaan zijn vooraleer dit Catch gedeelte de afhandeling zal voorzien voor de optredende fout. Visual Basic 2010 Broncode Class CatchWhenClauseExample Public Shared Sub Main() Console.Write( "Byte value ? : ") Dim stringValue As String = Console.ReadLine() Try Dim decimalValue As Decimal = System.Convert.ToDecimal(stringValue) Dim byteValue As Byte Try byteValue = System.Convert.ToByte(decimalValue) Catch ex As OverflowException When decimalValue > 255 Console.WriteLine( "Value to large for a Byte.") Catch ex As OverflowException When decimalValue < 0 Console.WriteLine( "Value to small for a Byte.") End Try Catch ex As FormatException Console.WriteLine( "Not a numeric value.") End Try Console.ReadLine() End SubEnd ClassDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Bij de invoer van de tekst "hello" krijgen we de melding "Not a numeric value.". Console Application Output Byte value ? : hello
Not a numeric value. Bij invoer van een waarde "256" of hoger krijgen we de melding "Value to large for a Byte.". Console Application Output Byte value ? : 256
Value to large for a Byte. Bij invoer van een waarde "-1" of lager krijgen we de melding "Value to small for a Byte." Console Application Output Byte value ? : -1
Value to small for a Byte. Bemerk dat we in de When clausules gebruik maken van de variabele decimalValue ( en niet van byteValue ) om te verwijzen naar de ingevoerde waarde. ByteValue bevat immers nog geen waarde als een exceptie optreedt bij het omzetten naar Byte.
Bemerk overigens ook hoe het dus mogelijk is meerde Try blokken in mekaar te nesten
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|