RuntimeException
Базовый класс непроверяемых исключений — ошибок в логике программы.
Доступно с: Java 1.0
Синтаксис
public class RuntimeException extends Exception
public RuntimeException(String message)
public RuntimeException(String message, Throwable cause)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| message | String | Текст ошибки. |
| cause | Throwable | Необязательная исходная причина. |
Примеры
Непроверяемое исключение не нужно объявлять в throws:
class OrderNotFoundException extends RuntimeException {
OrderNotFoundException(int id) {
super("Order " + id + " not found");
}
}
String findOrder(int id) {
if (id != 1) throw new OrderNotFoundException(id);
return "Order 1: 2 books";
}
void main() {
IO.println(findOrder(1));
try {
findOrder(5);
} catch (OrderNotFoundException e) {
IO.println(e.getMessage());
}
}Результат:
Order 1: 2 books
Order 5 not foundПримечания
Компилятор не заставляет перехватывать наследников RuntimeException. Обычно они означают ошибку программиста: null там, где его не ждали, неверный индекс, неправильный аргумент. Большинство современных библиотек используют именно непроверяемые исключения.
См. также
- Exception — Базовый класс исключений, которые программа может перехватить и обработать.
- IllegalArgumentException — Сообщает, что метод получил недопустимый аргумент.
- IllegalStateException — Сообщает, что метод вызван в неподходящий момент — объект не в том состоянии.
- NullPointerException — Возникает при обращении к методу или полю через ссылку, равную `null`.
Вопросы и ответы по теме
В учебнике
- Проверяемые и непроверяемые исключения — Checked и unchecked исключения в Java — что требует компилятор, объявление throws, RuntimeException и обёртывание исключений.