Механизм обработки аномальных ситуаций (ошибок), возникающих во время выполнения программы. Позволяет отделить код, отвечающий за логику программы, от кода обработки ошибок.
Ключевые слова:
try: Определяет блок кода, в котором могут произойти исключения.catch: Определяет блок кода, выполняющийся при возникновении определенного типа исключения.throw: Генерирует (создает) исключение. Тип исключения может быть любым объектом.Принцип работы:
try.try возникает исключение (генерируется с помощью throw), обычное выполнение программы прерывается.catch, способный обработать сгенерированное исключение (по типу).catch, его код выполняется.catch не найден на текущем уровне вызовов, исключение "распространяется" вверх по стеку вызовов до тех пор, пока не будет найдена подходящая функция обработки (или программа завершится некорректно).Пример:
cpp
Преимущества:
Недостатки:
Для безопасной работы с ресурсами в присутствии исключений часто используются RAII (Resource Acquisition Is Initialization) и умные указатели.