2009-02-13 13 views
13

Chcę przechwycić wyjątki w javascript, jeśli zapytanie wstawiania nie zostanie wykonane.Jak wychwytywać wyjątki w javascript?

Pisałem kod poniżej:

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

Jeśli dostanę ten sam identyfikator sesji, to zapytanie nie zostało zrealizowane, ponieważ jest to klucz podstawowy w bazie danych.

+2

należy zdezynfekować swój post przed [email protected] dostaje włamał! : P –

+0

Prawie bez sensu, wszystkie wersje są dostępne. Zrobiłem to i tak. –

+0

Tak, musisz teraz zmienić swoje hasło do tego konta. Również tworzenie ActiveXObjects w JS przeraża mnie. – annakata

Odpowiedz

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 - kod zostanie zaksięgowana spojrzenia, dobrze, z braku lepszego słowa, brzydkie! (Bez urazy) Nie możesz użyć DWR lub innej struktury JavaScript (w zależności od wyboru języka), aby ukryć wszystkie połączenia DB na zapleczu i po prostu mieć javascript wywołujący kod zakończenia i robiący coś z odpowiedzią?

25

Aby być kompletne, oto pełną 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?) 
}