Отлов некорректных операндов в математических действиях - Visual Basic .NET
Формулировка задачи:
Привет.
Ошибки не возникает. Ответ равен "бесконечность".
Если посчитать корень из -2, то ответ будет какойто "NaN".
Как отловить некорректные операнды математических действий?
Решение задачи: «Отлов некорректных операндов в математических действиях»
textual
Листинг программы
Private Function Calc(ByVal op As String, ByVal x1 As Double, Optional ByVal x2 As Double = 0) As Double
Select Case op
Case "*"
x1 = x1 * x2
Case "/"
If x2 = 0 Then Throw New DivideByZeroException
x1 = x1 / x2
Case "sqrt"
If x1 < 0 Then Throw New InvalidOperationException("It it prohibited to take a square root of a negative number")
x1 = Math.Sqrt(x1)
End Select
If Double.IsInfinity(x1) OrElse Double.IsNaN(x1) Then Throw New InvalidOperationException
Return x1
End Function