Menu
CoddyTech

Основы try-catch

Часть раздела Логика и управление потоком путешествия по Java на Coddy. Урок 40 из 59.

Блоки try-catch в Java используются для обработки исключений (ошибок), которые могут возникнуть во время выполнения программы. Код, который может вызвать исключение, помещается в блок try, а код обработки ошибки — в блок catch.

Вот базовая структура блока try-catch:

try {
   // Код, который может вызвать исключение
} catch (ExceptionType e) {
   // Код для обработки исключения
}

Давайте посмотрим, как это работает, с помощью Integer.parseInt(), который преобразует String в целое число:

String text = "abc";
try {
   int number = Integer.parseInt(text);
   System.out.println(number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
}

После выполнения приведённого выше кода вывод будет таким:

Error: Not a valid number

За одним блоком try могут следовать несколько блоков catch — по одному для каждого типа исключения. Java выполняет первый блок, тип которого соответствует возникшему исключению:

try {
   int number = Integer.parseInt(text);
   System.out.println(10 / number);
} catch (NumberFormatException e) {
   System.out.println("Error: Not a valid number");
} catch (ArithmeticException e) {
   System.out.println("Error: Division by zero");
}
challenge icon

Задание

Легко

Создайте метод с именем divideNumbers, который принимает три аргумента:

  1. String (num1), представляющий первое число
  2. String (num2), представляющий второе число
  3. целое число (index), представляющее индекс массива

Метод должен:

  1. Создать массив размера 2
  2. Сохранить по указанному индексу целочисленное значение num1, разделённого на целочисленное значение num2
  3. Вернуть значение по указанному индексу
  4. Обработать все возможные исключения, возвращая вместо этого соответствующее сообщение об ошибке

Сообщения, которые необходимо возвращать:

  • Для NumberFormatException: "Error: Invalid number format"
  • Для ArithmeticException: "Error: Division by zero"
  • Для ArrayIndexOutOfBoundsException: "Error: Invalid array index"
  • При успешном выполнении: вернуть результат в виде строки

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static String divideNumbers(String num1, String num2, int index) {
        // Напишите свой код здесь
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num1 = scanner.nextLine();
        String num2 = scanner.nextLine();
        int index = Integer.parseInt(scanner.nextLine());
        
        System.out.println(divideNumbers(num1, num2, index));
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Java