2009-02-13 30 views
13

Tôi muốn bắt ngoại lệ trong javascript nếu một truy vấn chèn không được thực hiện.Làm thế nào để bắt ngoại lệ trong javascript?

Tôi đã viết đoạn code dưới đây:

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

Nếu tôi nhận được id cùng một phiên sau đó truy vấn không được thực hiện vì nó là chìa khóa chính trong cơ sở dữ liệu.

+2

Bạn nên khử trùng bài của bạn trước khi [email protected] bị hack! : P –

+0

Hầu như không có điểm nào trong đó, tất cả các bản sửa đổi đều có sẵn. Tôi đã làm nó anyway. –

+0

Vâng, bạn cần thay đổi mật khẩu cho tài khoản đó ngay bây giờ. Ngoài ra việc tạo ActiveXObjects trong JS làm tôi sợ hãi. – annakata

Trả lời

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 - mã bạn được đăng vẻ, tốt, vì thiếu một từ tốt hơn, xấu xí! (Không vi phạm) Bạn không thể sử dụng DWR hoặc một số khung JavaScript khác (tùy thuộc vào lựa chọn ngôn ngữ của bạn) để ẩn tất cả nội dung kết nối DB ở mặt sau và chỉ cần javascript gọi mã kết thúc trở lại và thực hiện điều gì đó với phản hồi?

25

Để được hoàn thành, đây là cấu trúc đầy đủ

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?) 
} 
Các vấn đề liên quan