A weird VB feature

May 26, 2007

A friend asked me for help today about a segment of code that was giving him a headache. After looking at the code I immediately told him the problem. Can you spot the problem too without compiling the VB code? Why is it happening?

Module Program

    Sub Main()
    End Sub

    Private Sub Calculate()
        Dim value1 As Integer = 0

        ‘Imagine that the value of value1 is has been manipulated on this section
        ‘///–> Insert imaginary code here <—

        Dim value2 As Integer = CInt(IIf(value1 <= 0, 100, CalculateValue(value1)))
    End Sub

    Private Function CalculateValue(ByVal value1 As Integer) As Integer
        If (value1 <= 0) Then
            Throw New ArgumentOutOfRangeException(“Parameter cannot be less than 1!”)
            Return CInt(100 / value1)
        End If
    End Function

End Module

*Note: Comments are welcome here.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.