Типы данных и исключения в Java
Jim White
Java Developer
Error — серьёзная неисправность в работе программыimport java.util.*;
public class CauseOutOfMemory {
public static void main(String[] args) {
List<Long> numbers = new ArrayList<Long>();
long counter = 0;
while (true) {
numbers.add(counter);
counter++;
}
}
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.base/java.lang.Long.valueOf(Long.java:1204)
at foo/exceptions.CauseOutOfMemory.main(CauseOutOfMemory.java:12)
| Проверяемое исключение | Исключение времени выполнения («непроверяемое») | |
|---|---|---|
| Требует обработки | Да | Нет |
| Общая причина | Внешние факторы вне нашего контроля | Ошибки в нашем коде |
| Восстановление | Как правило, возможно при ожидаемой ситуации | Обычно невозможно |
| Механизм обработки | try/catch или throws | Лучше писать код так, чтобы их избежать |
| Пример исключения | Файл не найден | Индекс массива выходит за границы |
Exception, не являющиеся подклассами RuntimeException, — это проверяемые исключенияFileNotFoundException)RuntimeException — суперкласс всех непроверяемых исключенийIndexOutOfBoundsException)ArithmeticException)| Подкласс RuntimeException | Описание ситуации, при которой возникает |
|---|---|
| ArithmeticException | Недопустимые арифметические операции, например деление на 0 |
| IndexOutOfBoundsException | Индекс массива, строки и т. д. выходит за допустимые границы |
| NegativeArraySizeException | Попытка создать массив с отрицательным размером |
int y = 5/0; // ArithmeticException causing code
int[] list = new int[-1]; //NegativeArraySizeException causing code
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.NegativeArraySizeException: -1
public class LoadClass {
public static void main(String[] args) {
Class myClass = Class.forName("com.mysql.Driver");
}
}
LoadClass.java:3: error: unreported exception ClassNotFoundException;
must be caught or declared to be thrown
Class myClass = Class.forName("com.mysql.Driver");
^
1 error
Типы данных и исключения в Java