Исключения (exceptions)
Коротко: Ошибки времени выполнения, которые можно целенаправленно перехватить и обработать с помощью try/catch, вместо краха всей программы.
Подробнее: Java различает проверяемые исключения (например, IOException — компилятор заставляет перехватить или пробросить) и непроверяемые (например, NullPointerException — компилятор не проверяет).
try {
int result = 10 / number;
} catch (ArithmeticException e) {
System.out.println("Division by zero!");
}Подробности
class NotEnoughFundsException extends Exception {См. также: несколько исключений, try-with-resources, ошибки