Отлов некорректных операндов в математических действиях - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Привет.
Листинг программы
  1. Dim x As Double = 1
  2. Dim y As Double = 0
  3. Try
  4. x = x / y
  5. Catch ex As Exception
  6. MsgBox(ex.ToString)
  7. End Try
  8. MsgBox(x.ToString)
Ошибки не возникает. Ответ равен "бесконечность". Если посчитать корень из -2, то ответ будет какойто "NaN". Как отловить некорректные операнды математических действий?

Решение задачи: «Отлов некорректных операндов в математических действиях»

textual
Листинг программы
  1. Private Function Calc(ByVal op As String, ByVal x1 As Double, Optional ByVal x2 As Double = 0) As Double
  2.     Select Case op
  3.         Case "*"
  4.             x1 = x1 * x2
  5.         Case "/"
  6.             If x2 = 0 Then Throw New DivideByZeroException
  7.             x1 = x1 / x2
  8.         Case "sqrt"
  9.             If x1 < 0 Then Throw New InvalidOperationException("It it prohibited to take a square root of a negative number")
  10.         x1 = Math.Sqrt(x1)
  11.     End Select
  12.     If Double.IsInfinity(x1) OrElse Double.IsNaN(x1) Then Throw New InvalidOperationException
  13.     Return x1
  14. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы