Foros del Web » Programando para Internet » Javascript »

Para que sirve el throw

Estas en el tema de Para que sirve el throw en el foro de Javascript en Foros del Web. Que diferencia tiene con el Try Catch vs el Throw ya que ambos con para excepciones, entonces cual usar ?...
  #1 (permalink)  
Antiguo 24/09/2011, 17:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 432
Antigüedad: 14 años, 1 mes
Puntos: 11
Para que sirve el throw

Que diferencia tiene con el Try Catch vs el Throw ya que ambos con para excepciones, entonces cual usar ?
__________________
Libro de HTML 5 + codigo fuente bajar aqui.
  #2 (permalink)  
Antiguo 24/09/2011, 18:16
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Para que sirve el throw

buenas,
en realidad tienen diferentes propósitos. try/catch/finally se utiliza para capturar una excepción mientras que throw genera una excepción. el propósito de try/catch/finally es poder manejar la excepción y posiblemente tomar rutas alternas, evitando así que la aplicación colapse. en cambio throw lo que haces es enviar una señal de excepción al interprete. quizas te preguntes qué sentido tiene eso. es muy simple, no todos los códigos que se escriben estan destinado para ser utilizado por el usuario final. pongamos por ejemplo un framework el cual es una herramienta para desarrolladores. en ese sentido throw funciona para indicarle posibles errores en el modo que se esta utilizando alguna parte de la aplicación. por ejemplo, una función que requiere explicitamente que el argumento sea de algún tipo o de un rango. no siempre es adecuado truncar el valor al rango necesario o convertir el tipo. en ese sentido un throw hace que colapse la aplicación que el autor esta desarrollando. y más importante, dicha excepción se refleja en la consola del navegador. no es lo mismo mostrar un mensaje de error mediante una excepción que mediante una ventana modal. es erróneo utilizar ese tipo de ventana para indicarle al autor que tiene un error. además, utilizando las sentencias correctas permite la portación del código de un entorno a otro. por ejemplo, de un navegador a otro tipo de aplicación como photoshop, node.js, o PDFs.

Código:
try{ // captura la excepción ;
throw new Error('un mensaje');
}catch(err){
console.log('se capturo la excepción: ' + err.message);
// aqui puedes hacer otras tareas alternas si ocurre la excepción ;
// digamos que es algo parecido como un if/else ;
}
notese que para usar try/catch no es necesario utilizar throw. mira por ejemplo algunos códigos que utilizan ajax. en versiones anterior de iexplorer no existia la función XMLHttpRequest y habia que hacerlo por ActiveX -si bien recuerdo.
Código:
try{
var http = new XMLHttpRequest();
// si la funcion no existe se genera una excepcion ;
}catch(err){
var http = // aqui la version de iexplorer;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:05.