Я в основном думаю, что был задан неправильный вопрос.
Какова стоимость исключения не является полезной, более полезной является стоимость исключений относительно альтернативы. Таким образом, вам нужно измерить, сколько стоит исключение, и сравнить это с возвращением кодов ошибок >>> И <<<, проверяющих коды ошибок на каждом уровне стека, раскручивают. </p>
Также обратите внимание, что использование исключений не должно быть сделано, когда вы все контролируете. Внутри класса возвращение кода ошибки, вероятно, является лучшей техникой. Исключения следует использовать для передачи управления во время выполнения, когда вы не можете определить, как (или в каком контексте) ваш объект будет использоваться во время выполнения.
По сути, его следует использовать для передачи управления на более высокий уровень контекста, где объект с достаточным контекстом поймет, как обрабатывать исключительную ситуацию.
Учитывая этот принцип использования, мы видим, что исключения будут использоваться для передачи управления на несколько уровней в кадре стека. Теперь рассмотрим дополнительный код, который нужно написать, чтобы передать код ошибки в тот же стек вызовов. Подумайте о дополнительной сложности, которая добавляется тогда, когда коды ошибок могут поступать из разных направлений, и попытайтесь объединить все типы кодов ошибок.
Учитывая это, вы можете увидеть, как исключения могут значительно упростить поток кода, и вы можете увидеть все большую сложность потока кода. Тогда возникает вопрос, что исключения из погодных условий обходятся дороже, чем сложные тесты условий ошибок, которые необходимо выполнять в каждом кадре стека.
Ответ, как всегда, зависит (заполняйте профиль и используйте быстрый, если вам это нужно).
Но если скорость не единственная цена.
Ремонтопригодность - это стоимость, которую можно измерить. Использование этой метрики стоимости Исключения всегда побеждают, поскольку они в конечном итоге обеспечивают поток кода для выполнения только той задачи, которую необходимо выполнить, а не задачи и контроля ошибок.