Как исправить эту обработку исключений
Мне это нужно для проверки ввода данных от пользователя. Он должен убедиться, что он числовой и находится в диапазоне от -1 до 5, включая 0 в качестве допустимого входного сигнала.
Что я уже пробовал:
Sub Main() Dim Years As Integer Dim Valid As Boolean = False Do Until Valid = True Console.WriteLine("Enter a number between -1 and 5") If IsNumeric(Console.ReadLine) Then Years = Console.ReadLine() Console.WriteLine() Select Case Years Case -1 To 5 Valid = True Case Else Console.WriteLine("The number is outside the range") End Select Console.WriteLine("Enter a valid number") End If Loop Console.ReadLine() End Sub
Richard MacCutchan
В чем вопрос?
Teal_
в настоящее время опубликованный код будет пойман, если введено буквенное число, но если введено число вне или внутри диапазона, то он выдаст ошибку в строке "Years = Console.Readline ""преобразование из строки ""В тип" целое число "недопустимо". Я не знаю, почему это происходит. Кроме того, когда я удаляю "if IsNumeric(console. readline) Затем " это работает. Я хотел бы помочь исправить его так, чтобы он выходил из цикла только в том случае, если будет введено число от -1 до 5
ZurdoDev
Приставка.ReadLine принимает входные данные от пользователя. Так что не звоните дважды. Храните его в строке, а затем проверьте.
"Преобразование из строки ""В тип" целое число "недопустимо". - Посмотри на свой код. Вы определили годы как целое число, поэтому, когда вы вводите что-то, что не является целым числом, вы получите эту ошибку.
Peter_in_2780
Ваша проблема заключается в вызове консоли.Перечитай дважды. Вам нужно вызвать его один раз и использовать этот результат для тестирования, а затем преобразовать.