#vb.net #exception
#vb.net #исключение
Вопрос:
Мне нужно написать программу, которая указывает большую из двух переменных, используя исключения.
Я не уверен, что это приемлемый код. Я новичок в этом и попытался использовать этот код здесь:
Class GreaterThan
Public Shared Sub Main()
Try
Dim Y As Integer = 12
Dim X As Integer = 23
If Y > X Then
System.Console.WriteLine(Y)
Else
System.Console.WriteLine(X)
Throw New Exception("Greater Than")
End If
Catch ex As Exception
System.Console.WriteLine(ex.Message)
End Try
End Sub
Завершить класс
Обычно я бы не использовал исключение, но меня попросили его использовать, я просто не уверен, какое исключение сработает лучше всего.
Ответ №1:
Я не уверен, в чем вопрос на самом деле. Ваш код кажется совершенно корректным. Было бы отображено: На 23 больше, чем
Вообще говоря; вы бы не хотели использовать исключение для обработки чего-то вроде сравнения целых чисел.
Существует множество способов освежевать кошку, но вы, возможно, захотите взглянуть на эти:
Console.Write(If(Y > X, Y, X))
Console.Write(Math.Max(X, Y))
Console.Write(New Integer() {X, Y}.Max())
Наверное, я действительно не понимаю, чего вы пытаетесь достичь. Если вам придется использовать исключение, у меня может возникнуть соблазн сделать что-то вроде…
If X > Y Then
Throw New Exception(String.Format("{0} is greater than {1}", X, Y))
End If
Комментарии:
1. Я бы не использовал исключение, если бы мне не нужно было. Но поскольку меня попросили использовать одно, это моя попытка. Я бы сделал это по-другому, если бы не было необходимости в исключении.
2. Спасибо, я использовал это в своем коде и немного изменил его, но я думаю, что этого достаточно.
Ответ №2:
Я бы не стал использовать исключения в такой ситуации. Вместо этого сделайте что-то вроде этого:
Public Shared Sub Main()
Dim Y As Integer = 12
Dim X As Integer = 23
If Y > X Then
System.Console.WriteLine(Y)
Else
System.Console.WriteLine(X)
' PERFORM ACTION BASED ON X > Y
End If
End Sub
Вы также могли бы обернуть это в функцию, которая возвращает True или False в зависимости от того, что такое X и Y, но я думаю, что это немного излишне.
Комментарии:
1. @user678113 Обычно я бы тоже не стал использовать исключение, но меня попросили его использовать. Я хочу знать, является ли это допустимым.
2. Разве не все исключения являются допустимыми исключениями? Можете ли вы объяснить, что вы подразумеваете под «допустимым исключением»?
3. Под действительным я имел в виду, является ли это лучшим. Я знаю, что это не имеет особого смысла, но я не имею особого смысла. Мои мысли и объяснения запутанны.
Ответ №3:
Классу нравится, чтобы это делалось именно так:
Class MyClient
Public Shared Sub Main()
Try
Dim X As Integer = 11
Dim Y As Integer = 12
If X > Y Then
System.Console.WriteLine("X is Greater")
Else
Throw New Exception("Y is Greater")
End If
Catch e As Exception
System.Console.WriteLine(e.Message)
End Try
End Sub
End Class