Exception
Базовый класс исключений, которые программа может перехватить и обработать.
Доступно с: Java 1.0
Синтаксис
public class Exception extends Throwable
public Exception(String message)
public Exception(String message, Throwable cause)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| message | String | Текст ошибки, доступный через `getMessage()`. |
| cause | Throwable | Необязательная исходная причина. |
Примеры
Своё проверяемое исключение:
class InsufficientFundsException extends Exception {
InsufficientFundsException(String message) {
super(message);
}
}
void withdraw(int balance, int amount) throws InsufficientFundsException {
if (amount > balance) {
throw new InsufficientFundsException("Need " + amount + ", have " + balance);
}
IO.println("Withdrawn " + amount);
}
void main() {
try {
withdraw(100, 30);
withdraw(100, 250);
} catch (InsufficientFundsException e) {
IO.println("Error: " + e.getMessage());
}
}Результат:
Withdrawn 30
Error: Need 250, have 100Примечания
Наследники Exception (кроме RuntimeException) — проверяемые исключения: компилятор требует либо перехватить их в catch, либо объявить в throws. Иначе ошибка компиляции unreported exception ... must be caught or declared to be thrown. Перехват самого Exception ловит почти всё — делайте это только на верхнем уровне программы.
См. также
- RuntimeException — Базовый класс непроверяемых исключений — ошибок в логике программы.
- throw — Бросает исключение и прерывает выполнение метода.
- try / catch / finally — Перехватывает исключения; finally выполняется всегда, а try с ресурсами сам их закрывает.
- Throwable.getMessage() — Возвращает текст сообщения исключения.
- Throwable.getCause() — Возвращает исходное исключение, которое было обёрнуто в текущее.
В учебнике
- Что такое исключения — Исключения в Java — как программа сообщает об ошибке, как читать трассировку стека, частые исключения и иерархия Throwable.