The question only asks for one reason, but here are a few.

  1. Exception handling allows a program to recover from mistakes made in parts of a program that do not perform any error checks.

  2. Exception handling allows the main logic of an algorithm not to be obscured by interleaved error handling code.

  3. Exception handling allows several different errors to be handled by a single section of code.

  4. Exception handling is a convenient way for functions (or procedures or methods, etc.) to indicate that a problem has occurred that is sure to be dealt with, even if the programmer ignores it.