Saludos!
Clase NuevoUsuario (servlet - es la clase que captura la excepción)
Código:
Clase Controlador (no pretendo que esta clase maneje la excepción, sólo que la envíe hacia arriba)protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nombreUsuario = request.getParameter("nombreUsuario"), contraseña = request.getParameter("contraseña1")
try{
controlador.nuevoJugador(nombreUsuario,contraseña);
}
catch(YaExisteUsuarioException e){
devolverPaginaErrorUsuario(response,nombreUsuario,e);
}
devolverPagina(response);
}
Código:
Clase ConexiónMySQL (es la clase que dispara la excepción)public void nuevoJugador(String nombreUsuario, String contraseña) throws YaExisteUsuarioException{
conexionSql.iniciarConexion();
conexionSql.registrarJugador(nombreUsuario, contraseña);
conexcionSql.terminarConexion();
jugadorActual = new Jugador(nombreUsuario, contraseña);
}
Código:
public void registrarJugador(String nombreUsuario, String contraseña) throws YaExisteUsuarioException{
try{
ResultSet rs = st.executeQuery("SELECT nombre_usuario FROM jugadores WHERE nombre_usuario LIKE '"+nombreUsuario+"'");
int cont = 0;
while(rs.next())
cont++;
if(cont == 0){
st.executeUpdate("INSERT INTO jugadores (nombre_usuario,contraseña) VALUES ('"+nombreUsuario+"','"+contraseña+"')");
}
else{
throw new YaExisteUsuarioException("El nombre de usuario ya está en uso");
}
}
catch(Exception e){
e.printStackTrace();
}
}


