如何在javascript中捕获异常?

时间:2009-02-13 08:33:07

标签: javascript exception error-handling

如果没有插入查询,我想在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+"')");

如果我获得相同的会话ID,则查询未执行,因为它是数据库中的主键。

4 个答案:

答案 0 :(得分:25)

要完成,这是完整的结构

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

答案 1 :(得分:2)

<script language="JavaScript">

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

</script> 

(摘自http://www.devshed.com/c/a/JavaScript/JavaScript-Exception-Handling/

答案 2 :(得分:2)

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

仅供参考 - 您发布的代码看起来很好,因为想要一个更好的词,丑陋! (没有冒犯)你不能使用DWR或其他一些JavaScript框架(取决于你的语言选择)隐藏后端的所有数据库连接内容,只需让javascript调用后端代码并做一些事情回应?

答案 3 :(得分: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 */
}