Основы 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");
}Задание
ЛегкоСоздайте метод с именем divideNumbers, который принимает три аргумента:
- String (
num1), представляющий первое число - String (
num2), представляющий второе число - целое число (
index), представляющее индекс массива
Метод должен:
- Создать массив размера 2
- Сохранить по указанному индексу целочисленное значение
num1, разделённого на целочисленное значениеnum2 - Вернуть значение по указанному индексу
- Обработать все возможные исключения, возвращая вместо этого соответствующее сообщение об ошибке
Сообщения, которые необходимо возвращать:
- Для
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));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка словПотренируйтесь самостоятельно: Онлайн-компилятор Java