Exception handling provides a way to detect and respond to runtime errors. It involves finding the problem by throwing an exception, informing that an error occurred, catching the exception, and taking corrective action. Common exception types include ArithmeticException for division by zero, ArrayIndexOutOfBoundsException for invalid array indexes, and FileNotFoundException for missing files. The try block contains code that might cause an exception, and the catch block handles the exception if it occurs. Programmers can also define their own exception subclasses to throw custom exceptions.