14 votes

Comment attraper les exceptions en javascript ?

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

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 j'obtiens le même identifiant de session, la requête n'a pas été exécutée car il s'agit de la clé primaire de la base de données.

25voto

scunliffe Points 30964

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?)
}

3voto

tehvan Points 3949
<script language="JavaScript">

try
{
 colours[2] = "red";
}
catch (e)
{
  alert("Oops! Something bad just happened. Calling 911...");
}

</script> 

(Extrait de http://www.devshed.com/c/a/JavaScript/JavaScript-Exception-Handling/ )

2voto

marktucks Points 1219
try {
  // your code that can throw exception goes here
} catch(e) {
  //do stuff with the exception
}

Pour info, le code que vous avez posté a l'air, à défaut d'un meilleur mot, moche ! (Sans vouloir vous offenser) Ne pourriez-vous pas utiliser DWR ou un autre framework JavaScript (en fonction de votre choix de langue) pour masquer toutes les connexions aux bases de données à l'arrière-plan et faire en sorte que le javascript appelle le code de l'arrière-plan et fasse quelque chose avec la réponse ?

1voto

KooiInc Points 38845
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 */
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X