Capítulo 5: Manejo de Errores en JavaCC

          Bueno, primero que nada les debo comentar que el manejo de errores no es un estándar, puesto que existen diversar formas de manejar errores, además el manejo de errores no es propiamente algo de JavaCC, sino de Java. Como tal no me meteré a fondo en esto, sólo les explicaré lo necesario para la comprensión.

          En Java existen dos clases Error y Exception, estas clases nos sirven para mandar errores y/o excepciones cuando nuestro programa esta erróneo. Estos errores son obtenidos por la claúsula catch de Java. Entre nuestros archivos encontramos dos con los nombres TokenMgrError y ParseException, en estos se definen los errores que nos puede ocasionar nuestro análisis léxico o sintáctico respectivamente, entremos a detalle.

TokenMgrError:

          Es una clase derivada de la clase Error, este error se presenta si la definición de los tokens no esta completa y no se encontró el componente léxico. Este manda el mensaje por defaul de: "Lexical error...". Este error no es recuperable, y como tal si se encuentra, el programa se botará, para evitar este tipo de errores es importante definir bien los tokens, e incluir el error más apropiado y (sin saber lo nombro) el único: "Caracter no valido". Para hacer esto les explicaré algo sobre las Expresiones Regulares que no comenté en el Capítulo 2.

Como ya lo sabemos la estructura que tiene una E.R. en JavaCC es:

TIPO:{
   ... definición de tokens...
}

y la definición de un token se hace de la siguiente manera:

<ID: e.r >

bueno, hasta aquí nada nuevo, luego de la definición de un token se coloca:

{
  ...acciones...
}

donde acciones es codigo en Java que nos indica que se debe de hacer cuando se encuentre este componente léxico.

          Es en esta parte de la E.R. donde podemos poner una instrucción para que nos muestre un mensaje en pantalla de "Caracter No Valido". Como ejemplo utilizaremos las mismas E.R.'s del ejemplo del Capítulo 4:

          Si se quiere cambiar el mensaje de error que nos manda Java cuando encuentra el error del tipo TokenMgrError o cambiar algunas de las acciones de este tipo de error, edita el archivo TokenMgrError.java, que por suerte trae comentarios para saber mas o menos donde andamos...

ParseException:

          Esta es una clase derivada de la clase Exception. Para modificar el manejo de este tipo de excepciones es necesario meterse en el código generado por JavaCC, los archivos en los que se le hace referencia son: Nombre.java (el archivo principal) y el ParseException.java. No me meteré mas en este tipo de excepciones por ser programación para Java.

          Para lograr mandar mensajes de error propios cuando este tipo de excepción aparece se utiliza las sentencia try...catch... de Java, aclaro, que el manejo de errores que aquí hago es por medio de una impresión del mensaje de error, pero no intento plantearles un estandar, pues por el hecho de que es Java pueden ustedes hacer el código como mejor les parezca, a decir verdad yo recomiendo el manejar un archivo con todos los posibles mensajes de error al que se le denomina tabla de errores.

          Es así como llegamos al final de nuestro tutorial básico de JavaCC, para mayor información y más detalle entren a la página oficial de JavaCC.

                      

 

Hosted by www.Geocities.ws

1