Блок try и catch в Java
Конструкция try-catch делит участок кода
на попытку выполнения и реакцию на сбой.
В try размещают команды, которые могут
завершиться исключением. В catch - код,
который выполнится, если исключение действительно
возникло:
try {
// code that may fail
} catch (Exception e) {
// handle the failure
}
Обратимся к элементу списка по неверному индексу
без обработки - программа упадет. С catch
можно вывести понятное сообщение:
import java.util.ArrayList;
import java.util.Arrays;
ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3));
try {
System.out.println(nums.get(10));
} catch (IndexOutOfBoundsException e) {
System.out.println("index out of range");
}
Если в try исключения не было, блок
catch пропускается. После пары try-catch
выполнение идет дальше, как после обычной команды:
import java.util.ArrayList;
import java.util.Arrays;
ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(5, 6, 7));
try {
System.out.println(nums.get(0));
} catch (IndexOutOfBoundsException e) {
System.out.println("index out of range");
}
System.out.println("done");
Переменная в catch хранит объект исключения.
Через e.getMessage() можно вывести текст ошибки,
который сформировала среда выполнения.
Дан код:
int a = 20;
int b = 0;
Поделите a на b внутри try.
При делении на ноль выведите строку
"division by zero" в catch.
Дан код:
import java.util.ArrayList;
import java.util.Arrays;
ArrayList<Integer> scores = new ArrayList<>(Arrays.asList(4, 8, 15));
int index = 5;
Выведите элемент списка по индексу index
в try. При неверном индексе выведите
"bad index".
Дан код:
String text = "abc";
Преобразуйте text в целое число в блоке
try через Integer.parseInt.
При ошибке формата выведите "not a number".