2009-02-13 7 views
13

Ich möchte Ausnahmen in Javascript abfangen, wenn eine Einfügeabfrage nicht durchgeführt wird.Wie man Ausnahmen in Javascript fängt?

Ich habe den Code unten geschrieben:

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+"')"); 

Wenn ich die gleiche Session-ID wird die Abfrage erhalten wurde nicht ausgeführt, da der Primärschlüssel in der Datenbank vorhanden ist.

+2

Sie sollten Ihren Beitrag sanieren, bevor [email protected] gehackt wird! : P –

+0

Fast kein Sinn darin, alle Revisionen sind verfügbar. Ich habe es trotzdem getan. –

+0

Ja, Sie müssen jetzt Ihr Passwort für diesen Account ändern. Auch das Erstellen von ActiveXObjects in JS macht mir Angst. – annakata

Antwort

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 
} 

FYI - der Code, den Sie sieht geschrieben, na ja, in Ermangelung eines besseren Wortes, hässlich! (Nichts für ungut) Könnten Sie nicht DWR oder ein anderes JavaScript-Framework (abhängig von Ihrer Sprachwahl) verwenden, um alle DB-Verbindungs-Sachen am Backend zu verstecken und nur das Javascript den Back-End-Code aufrufen und etwas mit der Antwort tun?

25

Um vollständig zu sein, hier ist die vollständige Struktur

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