В прошлой статье мы закончили с этим,

и, как и было обещано, в этой статье мы рассмотрим обработку ошибок. как вы, возможно, заметили, если вы тестировали его, если вы попытаетесь ввести букву там, где он запрашивает номер, вы получите ошибку.

то, как мы это исправим, нам нужно поймать эту ошибку. Для этого воспользуемся методом try-catch. Однако перед этим давайте используем несколько циклов, чтобы упростить программу, поскольку у нас есть несколько повторяющихся строк кода.

начните с перехода к началу основного метода и создания массива объектов Double под названием «числа» с двумя элементами. Очень важно, чтобы вы сделали это и массив Double, а не double. это потому, что двойники - это примитивный тип данных, он должен иметь числовое значение. однако Double — это объект, что означает, что он может иметь значение null. Мы хотим этого, потому что это сообщит нам, если элемент пуст, потому что значение будет нулевым.

после этого переместите строку, где мы создаем наш сканер после нового массива.

Теперь мы можем сделать цикл while, мы хотим продолжать цикл, пока любой из элементов в нашем массиве равен нулю. Посмотрите, сможете ли вы понять, как это сделать, не волнуйтесь, если вы не уверены, я положу изображение окончательного кода ниже.

Внутри этого цикла мы теперь хотим переместить нашу строку println внутрь цикла, и сразу после этого мы будем использовать сканер для чтения пользовательского ввода и назначить его новому двойнику с именем «num».

затем, используя оператор if, мы хотим сказать, что если первый элемент в нашем массиве равен нулю, тогда установите первый элемент равным num, в противном случае установите второй элемент равным num.

затем мы можем удалить строки, которые у нас были до этого, назначив пользовательский ввод num1 и num2, и мы можем удалить второй оператор println.

Наконец, теперь мы можем в последних 4 операторах if else заменить везде, где указано num1, на числа [0] и там, где указано num2, на числа [1].

Вот как должен выглядеть ваш код,

если вы запустите это, вы увидите, что оно работает точно так же, как и раньше. Теперь мы можем использовать обработку ошибок, чтобы исправить ошибки ввода. для этого нам нужно поместить оператор try catch вокруг строки double num = scan.nextDouble();

для этого мы пишем ключевое слово «попробуй», затем ставим открывающую фигурную скобку, затем после этой строки ставим закрывающую фигурную скобку. После этой скобки нам нужен оператор catch, поэтому мы пишем ключевое слово «catch», за которым следуют открывающая и закрывающая обычная скобка, а затем открывающая и закрывающая фигурные скобки.

теперь внутри обычных скобок нам нужно указать, какую ошибку следует отлавливать. Если мы посмотрим на ошибку, которую мы получаем, когда мы вводим букву вместо цифры, мы увидим, что ошибка представляет собой исключение InputMismatchException. Вот что мы ставим в скобки.

теперь внутри фигурных скобок мы помещаем код, который мы хотим, чтобы он выполнял, если обнаружит эту ошибку. В этом случае мы хотим, чтобы он просто распечатывал сообщение, предлагающее пользователю ввести число.

Теперь, если вы посмотрите на оператор if else после try catch, вы увидите, что это ошибка, потому что он не может найти «num». это потому, что вы не можете получить доступ к переменным извне оператора try catch, чтобы исправить это, переместите if else внутри оператора try catch.

если теперь вы попробуете запустить программу и ввести букву вместо цифры, она застрянет в бесконечном цикле вывода нашего сообщения об ошибке. Это связано с тем, что мы должны очистить входной буфер, в первый раз, когда возникает ошибка, введенный нами символ остается в буфере, поэтому, когда он зацикливается, чтобы снова ввести ввод, он считывает символ и просто повторяется. Чтобы исправить это, возьмите строку
String clearBuff = scan.nextLine(); и сделайте clearBuff переменной в начале основного метода.

теперь поместите clearBuff = scan.nextLine(); внутри оператора catch нашей попытки catch,

а затем удалите «String» из того места, где у нас изначально была эта строка.

теперь это будет очищать входной буфер каждый раз, когда он перехватывает ошибку, что предотвратит застревание в этом цикле. Теперь, если вы запустите программу и введете что-либо, кроме числа, вам придется вводить его снова, пока вы не введете 2 числа.

Итак, в этой статье мы узнали об обработке ошибок и о том, как ее можно использовать для обнаружения определенных ошибок, которые, как мы знаем, могут возникнуть. В следующей статье мы еще больше улучшим эту программу. Я надеюсь, вам понравилась эта, и, как всегда, если вам нравится эта серия, обязательно подпишитесь на меня, а также, если у вас есть какие-либо комментарии, оставьте их здесь, и я отвечу на них, как только смогу.