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