Muchos tipos de errores pueden causar excepciones, desde errores serios de hardware como la ruptura del disco rígido hasta errores simples de programación como tratar de acceder a un elemento fuera de los límites de un arreglo. Las excepciones permiten manejar los casos que salen del flujo principal de envío de mensajes dentro del método, estas no evitan el esfuerzo de detectar, reportar y manejar los errores, pero proveen las herramientas para realizar estas tareas fuera de la lógica principal y generalmente la cantidad de código necesario es menor.