Как отловить исключения в JavaScript? - PullRequest
14 голосов
/ 13 февраля 2009

Я хочу перехватывать исключения в javascript, если запрос на вставку не выполнен.

Я написал код ниже:

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

Если я получаю тот же идентификатор сеанса, то запрос не был выполнен, поскольку он является первичным ключом в базе данных.

Ответы [ 4 ]

25 голосов
/ 13 февраля 2009

Чтобы быть полным, вот полная структура

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?)
}
2 голосов
/ 13 февраля 2009
<script language="JavaScript">

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

</script> 

(Ripped from http://www.devshed.com/c/a/JavaScript/JavaScript-Exception-Handling/)

2 голосов
/ 13 февраля 2009
try {
  // your code that can throw exception goes here
} catch(e) {
  //do stuff with the exception
}

К вашему сведению - код, который вы разместили, выглядит, ну, из-за отсутствия лучшего слова, безобразно! (Без обид) Не могли бы вы использовать DWR или какой-либо другой фреймворк JavaScript (в зависимости от вашего выбора языка), чтобы скрыть все соединения с БД на бэкэнде и просто иметь javascript, вызывающий код бэкэнда и что-то делаете с ответом?

1 голос
/ 13 февраля 2009
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 */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...