Si decidimos comprobar la variable capturada "e", en el caso de que sea un objeto de tipo Error, tenemos que hacerlo de la siguiente manera:
function validarPassword(password){
try {
if(password.length < 5 ){
throw new Error('SHORT');
}else if(password.length > 10 ){
throw "LONG";
}
alert("Password Validated!");
}
catch(e){
if(e.message == "SHORT"){
alert("No hay suficientes caracteres de la contraseña !");
}else if(e == "LONG"){
alert("Contraseña contiene demasiados caracteres !");
}
}
finally{document.miFormulario.password.value='';}
alert("La revisión ha terminado.");
}
Si dejaramos el código así:
function validarPassword(password){
try {
if(password.length < 5 ){
throw new Error('SHORT');
}else if(password.length > 10 ){
throw "LONG";
}
alert("Password Validated!");
}
catch(e){
if(e == "SHORT"){
alert("No hay suficientes caracteres de la contraseña !");
}else if(e == "LONG"){
alert("Contraseña contiene demasiados caracteres !");
}
}
finally{document.miFormulario.password.value='';}
alert("La revisión ha terminado.");
}
No funcionaría, porque la variable "e" ya no es un cadena de texto, sino un objeto y para que se compare un valor de una propiedad de objeto siempre te tiene que invocar dicha propiedad (concatenando con el objeto).