Я все время вижу, что люди говорят, что исключения медленны, но я никогда не вижу никаких доказательств. Поэтому вместо того, чтобы спросить, являются ли они такими, я спрошу, как работают исключения за сценой, чтобы я мог принимать решения о том, когда их использовать, и если они медленные.
Из того, что я знаю, исключения - это то же самое, что и куча возврата, но он также проверяет, когда нужно прекратить делать возврат. Как он проверяет, когда делать остановку? Я угадываю и говорю, что есть второй стек, который держит тип исключения и местоположение стека, а затем возвращается, пока не доберется туда. Я также догадываюсь, что единственный раз, когда стек касается касания, бросается и каждый пытается/поймать. AFAICT, реализующий аналогичное поведение с кодом возврата, будет занимать одинаковое количество времени. Но это все догадки, поэтому я хочу знать.
Как действительно работают исключения?