Основы try-catch
Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 40 из 59.
Блоки try-catch в Java используются для обработки исключений (ошибок), которые могут возникнуть во время выполнения программы. Код, который может выбросить исключение, помещается в блок try, а код обработки ошибок — в блок catch.
Вот базовая структура блока try-catch:
try {
// Код, который может выбросить исключение
} catch (ExceptionType e) {
// Код для обработки исключения
}Давайте посмотрим это в действии с Integer.parseInt(), который преобразует строку в целое число:
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
Задание
ЛегкоСоздайте метод с именем divideNumbers, который принимает три аргумента:
- Строка (
num1), представляющая первое число - Строка (
num2), представляющая второе число - Целое число (
index), представляющее индекс массива
Метод должен:
- Создать массив размером 2
- Сохранить распарсенное целочисленное значение num1, делённое на распарсенное целочисленное значение num2, по данному индексу
- Вернуть значение по данному индексу
- Обработать все возможные исключения с соответствующими сообщениями об ошибках
Возвращаемые сообщения должны быть:
- Для
NumberFormatException: "Error: Invalid number format" - Для
ArithmeticException: "Error: Division by zero" - Для
ArrayIndexOutOfBoundsException: "Error: Invalid array index" - Для успешной операции: вернуть результат в виде строки
Шпаргалка
Блоки try-catch обрабатывают исключения (ошибки), которые могут возникнуть во время выполнения программы. Код, который может выбросить исключение, помещается в блок try, а код обработки ошибок — в блок catch.
Базовая структура:
try {
// Code that might throw an exception
} catch (ExceptionType e) {
// Code to handle the exception
}Пример с Integer.parseInt():
String text = "abc";
try {
int number = Integer.parseInt(text);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
}Общие типы исключений:
NumberFormatException- Неверный формат числаArithmeticException- Деление на нольArrayIndexOutOfBoundsException- Неверный индекс массива
Попробуйте сами
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Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов