Разделение эксепшенов на кастомные и системные нужно для классификации ошибок при выполнении приложения. Грубо говоря, мы разделяем ошибки на те, что произошли при выполнения действий, которые считаются невалидными в системе, которую мы моделируем (ex: попытка добавления студента в группу, которая уже достигла лимита по их количеству), и те, что произошли в результате выполнения действий, которые считаются невалидными с точки зрения выполнения кода (ex: попытка получить значение свойства объекта, ссылка на который равна null [NullReferenceException]).

Зачем это нужно?

Во первых - информативность. В первом примере будет явно более информативно получить эксепшен типа ReachedMaximumStudentCountException, чем, например, OutOfRangeException, даже если они будут иметь идентичное сообщение.

Во вторых - удобство тестирования. Зачастую в тестах воспроизводится сценарий невалидного взаимодействия с системой, для проверки того, что система этого не допускает. Если мы знаем, что в данной исключительной ситуации вылетает соответсвующий тип исключения, тестирование становится проще, нежели мы бы ловили какой-то общий системный эксепшен определяли, тот ли это эксепшен что нам нужен по сообщению.

В третьих, пункт, который сейчас вам не особо важен, но который стоит вспомнить при проектировании консольного UI в банках - возможность раздельной обработки кастомных и системных эксепшенов. Вылетание кастомного эксепшена означает то, что пользователь сделал что-то не так, соответсвенно они содержат какую-то полезную информацию, которую стоит передать пользователю, чтобы он исправился. Системные же эксепшены, означают ошибку в реализации, что юзеру видеть не обязательно, скорее даже обязательно не видеть, всё что пользователь не может понять - портит для него UX.

Под конец, хотелось бы приучать вас к использованию терминологии. Кастомный эксепшен описывает исключительную ситуацию проектируемой бизнес логики ⇒ бизнес логика является проекцией моделируемой предметной области в код ⇒ предметная область в переводе на английский, и в общеиспользуемой терминологии, называется доменом.

Так что использование термина “доменный эксепшн” в данном контексте предпочтительней.