что бы правильно обрабатывать ошибки.
очень часто нужно писать различное поведение (обработку) для различных видов ошибок, есть ошибки системные, есть ошибки на уровне фреймеврка, библиотек, и Вашего приложения, иногда надо поставить try...catch и игнорировать исключение (просто залогировав), иногда на основе этого исключения нужно отобразить пользователю читаемое сообщение, иногда откатить транзакцию, или авайрийно завершить работу.
И чем больше разнообразие исключений тем больше возможностей правильно его обработать.