Autor Tema: JavaScript lanzar Error, throw, try catch finally excepciones Ejercicio CU01187E  (Leído 2298 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Otro más.

A partir de este código:

Código: [Seleccionar]
<html> <head><meta charset="utf-8"><style type="text/css"> input {margin:10px;} </style>
<script>
function validarPassword(password){
  try  {
    if(password.length < 5 ) {      throw "SHORT";    }else if(password.length > 10 ) {  throw "LONG";    }
    alert("Password Validated!");
  } catch(e) {
    if(e == "SHORT"){  alert("Not enough characters in password!"); }
    else if(e == "LONG"){ alert("Password contains too many characters!");   }
  }finally{    document.miFormulario.password.value="";   }
  alert("La revisión ha terminado.");
}
 </script>
    </head>
    <body>
        <form name="miFormulario" onsubmit="validarPassword(document.getElementById('pass').value)" action="#" >
            Nombre de usuario: <input type="text" name="campo1"><br>
            Password: <input id="pass" type="password" name="password"><br>
            <input type="submit" value="Comprobar" name="comprobar">
        </form>
    </body>
</html>

Citar
a) Busca información en internet y respode: ¿Qué significado tiene una instrucción como throw "SHORT";? ¿A qué da lugar? ¿Qué diferencia hay entre throw "SHORT" y throw new Error('SHORT')?
throw "SHORT" en este caso envía un error personalizado en forma de string. Si se utiliza new Error('SHORT'), creamos un objeto que contendrá un parámetro que contiene un mensaje, además en dicho objeto se podrían especificar mas parámetros.

Citar
b) ¿Cuál es el objetivo que parecía pretender cumplir el autor del código?
Comprobar que la password introducida en el formulario contenga entre 5 y 10 caracteres. Si no es así, se manda una excepción indicando si tiene más, o menos caracteres de los requeridos y posteriormente mostrar un mensaje de error, y por ultimo dentro del finally borrar la password, tanto si se ha dado por buena como por mala anteriormente.

Citar
c) ¿En qué casos se ejecuta la cláusula finally incluida en el código?
Siempre.

Saludos.
« Última modificación: 13 de Febrero 2016, 17:40 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

En la pregunta a) la diferencia está en lo que se lanza con el error. Como has comentado en el primer caso es una cadena de texto, y en el segundo un objeto.

En la b) así es, lo que no parece coherente es borrar tanto si se supera la validación como si no, eso parece un error de diseño. Por eso el enunciado habla de "lo que parecía pretender cumplir el autor..."

c) Así es

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".