2009-02-13 8 views
13

Je veux attraper des exceptions en javascript si une requête d'insertion n'est pas faite.Comment attraper des exceptions en javascript?

J'ai écrit le code ci-dessous:

var adoConn = new ActiveXObject("ADODB.Connection"); 
var adoRS = new ActiveXObject("ADODB.Recordset"); 
var rec = new ActiveXObject("ADODB.Record"); 
adoConn.Open="DRIVER={MySQL ODBC 3.51 Driver};SERVER=172.25.37.145;" + "DATABASE=confluence;UID=root;PASSWORD=somePassword;OPTION=3"; 
//Connectionstring 
alert('Database Connected'); 
adoConn.Execute("insert into `session` (SessionId,Timestamp) values ('"+SessionId+"','"+SessionCurrenttime+"')"); 

Si je reçois le même identifiant de session alors la requête n'a pas été exécuté comme il est la clé primaire dans la base de données.

+2

Vous devez désinfectez votre message avant [email protected] est piraté! : P –

+0

Presque aucun point dedans, toutes les révisions sont disponibles. Je l'ai fait quand même. –

+0

Oui, vous devez changer votre mot de passe pour ce compte maintenant. Créer aussi ActiveXObjects dans JS effraie la merde de moi. – annakata

Répondre

1
try { 
    adoConn.Execute("insert into session (SessionId,Timestamp) values ('" 
        + SessionId + "','" 
        + SessionCurrenttime + "')"); 
} catch(e) { 
    /*use error object to inspect the error: e.g. return e.message */ 
} 
3
try { 
    // your code that can throw exception goes here 
} catch(e) { 
    //do stuff with the exception 
} 

Pour votre information - le code affiché regarde, bien, faute d'un meilleur mot, laid! (Pas d'infraction) Ne pourriez-vous pas utiliser DWR ou un autre framework JavaScript (en fonction de votre choix de langue) pour cacher toutes les choses de la connexion DB à l'arrière et juste le javascript appelant le code de retour et faire quelque chose avec la réponse?

25

Pour être complet, voici la structure complète

try { 
    // your code that can throw exception goes here 
} catch(e) { 
    //do stuff with the exception 
} finally { 
    //regardless if it worked or not, do stuff here (cleanup?) 
}