Te dejo un archivo de la facultad, se explica todo eso que preguntas. Cualquier duda pregunta.
https://mega.co.nz/#!pIlREA5I!OMwlry...oP_txUqeDrMcPg
Con lo de poder lanzar una excepcion, imaginate que tu clase pueda lanzar 23 tipos distintos de errores a una capa superior, si haces que cada error lanze una excepcion en particular puedes manejarlo mucho mas fácilmente.