Если вы хотите, чтобы кто-нибудь обнаружил и восстановил ваши исключения, вероятно, лучше использовать небольшую иерархию пользовательских типов исключений, вероятно, организованную по ожидаемой степени восстановления (например, иметь тип исключения, указывающий «что-то неожиданное произошло, но Сокет, вероятно, все еще хорош », другой для« состояния сокета нельзя доверять, но запуск с новым соединением сокетов может работать », а другой для« хост говорит, что вы делаете, не будет работать, даже не попробуйте еще раз, если у вас нет причин полагать, что что-то изменилось ». Подробности того, что вызвало исключение, часто менее важны для «отлавливающего» кода, чем характер нарушенных постусловий.