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