Всем привет! Что-то тяжко дается эта тема. Хочется хотя бы приблизительно понять, в чем прикол, так сказать. Подскажите, пожалуйста, верно ли я поняла суть создания собственных исключений: Когда мы создаем свой класс, предполагается, что в нем могут быть свойственные этому классу ошибки. Два примера: 1) Когда у нас нет подходящего исключения в уже созданных. Пример: У нас класс "Семья" и ребенок-школьник может пойти на улицу только, если сделает уроки. И если он идет на улицу, пока дз не выполнено, то мы не можем его пустить. Мы можем сделать это и без исключений, но чтобы у пользователя было понимание, почему действие "прогулка" недоступно, мы можем в классе "Семья" прописать свое собственное исключение, которое будет выводить информацию об ошибки ("Ребенок не может пойти на прогулку, пока ДЗ не выполнено"). Таким образом, с помощью созданного нами исключения наш код стал дружелюбнее к пользователю, хотя особого функционала не прибавилось. И без исключения мы могли бы сделать действие "прогулка" недоступным при несоблюдении всех условий 2) Когда мы хотим сделать уже существующее исключение более понятным для пользователя. Пример: Допустим, у нас есть компьютерная игра, в которой можно создать всего лишь 12 игроков для своей команды, и мы их всех храним в массиве. Если наш пользователь будет обращаться к 13-му игроку, то наша программа аварийно завершится и кинет исключение. Чтобы этого не было, мы перехватываем исключение про arrayindexoutofboundsexception и вместо него кидаем собственное, в котором пишем сообщение "вы обращаетесь к несуществующему игроку" и предлагаем повторить предыдущий шаг, но уже нормально Мне кажется, во втором примере есть шероховатости. Потому что я сама пока не совсем понимаю, а почему для этого нам нужны именно собственные исключения, ведь мы могли бы использовать программные, просто в блоке catch писать более человекодружелюбные сообщения на вывод. В общем, прошу помочь и направить, что я правильно поняла, а в чем очевидно потерялась