Exception handling in C++ provides built-in features to detect and handle runtime errors such as division by zero or accessing arrays out of bounds. Exceptions are unusual conditions that may occur during program execution and exception handling provides a type-safe way to cope with unpredictable problems at runtime rather than terminating the program. Exception handling is needed for object-oriented and distributed programs because traditional error handling solutions are not always appropriate.