Listo, lo solucioné. Se ve que el throw en la clase conexión no debe ir dentro de un try (el cual pertenecía a excepciones de la base de datos). Entonces lo saqué afuera del try y ahora sí captura la excepción.
Quedó así:
Código:
public void registrarJugador(String nombreUsuario, String contraseña) throws YaExisteUsuarioException{
int cont = 0;
try{
ResultSet rs = st.executeQuery("SELECT nombre_usuario FROM jugadores WHERE nombre_usuario LIKE '"+nombreUsuario+"'");
while(rs.next())
cont++;
}
catch(Exception e){
e.printStackTrace();
}
if(cont == 0){
try{
st.executeUpdate("INSERT INTO jugadores (nombre_usuario,contraseña) VALUES ('"+nombreUsuario+"','"+contraseña+"')");
}
catch(Exception e){
e.printStrakeTrace();}
}
else throw new YaExisteUsuarioException("El nombre de usuario ya está en uso");
}