martes, 7 de febrero de 2012

Manejo de excepciones


Siempre que exista un código problemático (que sea susceptible a error)  se debe incluir dentro de un try-catch, para que el error que pueda ‘arrojar’ este código, sea capturado y mostrado en pantalla como el usuario desee. A estos errores se le llaman excepciones. Hay excepciones de todo tipo y también se pueden crear unas propias para el proyecto. En este ejemplo se va a mostrar cómo crear una excepción personalizada, que se le lance cuando en un formulario, se inserte un producto que ya exista:


  • Primero se crea una clase excepción llamada ExcepcionProductoRepetido:
package org;

public class ExcepcionProductoRepetido extends Exception {
    ExcepcionProductoRepetido(){
        super(); // constructor por defecto de Exception
    }
    ExcepcionProductoRepetido( String cadena ){
        super( cadena ); // constructor param. de Exception
    }
}
  • Se crea la clase que lanzará la excepción (Lanzadora.java):
package org;
public class Lanzadora {
    public void siProductosIguales( int sonIguales ) throws ExcepcionProductoRepetido {
    if(sonIguales==1){
            throw new ExcepcionProductoRepetido( "Los productos están repetidos." );
        }

}
}
  • En la parte del código donde se inserta un producto en la base de datos:
...
try{
...
mysql.inicializarBD();
mysql.consultar("SELECT COUNT(nombre) AS COUNT FROM producto WHERE nombre='"+producto.getNombre()+"';");
rst=mysql.getResultSet();
if(rst.next()){
   if(!rst.getString("count").equals("0")){
        lanzaExcepcion.siProductosIguales(1);
   }
}
...
}catch(ExcepcionProductoRepetido er){
    out.println("Mi excepción: "+er.getMessage());
}
El resultado es que, si se crea un producto con el mismo nombre, aparecerá en pantalla el mensaje:
Mi excepción: Los productos están repetidos.

No hay comentarios:

Publicar un comentario