Ошибка указывает на наличие проблемы с программой. исключение - это специальная конструкция, которая прерывает поток управления программы и разматывает стек, собирая информацию о состоянии стека, чтобы о ней можно было сообщить.
Исключение можно использовать для обозначения ошибки, но не всегда. Например:
void startOperation() {
try {
while (someComplexOperationIsOnGoing()) {
checkRestart();
}
}
catch (RestartException re) {
startOperation();
}
}
void checkRestart() {
if (shouldRestart()) {
throw new RestartException();
}
}
Этот неполный пример кода предназначен для демонстрации случая, когда исключение не является ошибкой. Это не всегда лучшая практика; но он используется в некоторых случаях, когда целью является прерывание потока управления глубоко в программе (например, перенаправление страницы в веб-структуре при ответе на запрос HTTP) и возврат управления на более высокий уровень стека. , Термин исключение относится к механизму, прерывающему программу.
В Java есть класс Exception , который инкапсулирует это поведение. Класс Error также прерывает поток управления так же, как и исключение; но он зарезервирован только для серьезных, неисправимых проблем, возникающих во время выполнения Он используется, например, когда JVM не хватает памяти и не может создавать новые объекты.