如何在Javascript中捕获异常?

14

我想在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,那么查询没有被执行,因为它是数据库中的主键。

2
root@172.25.37.145被黑客攻击之前,你应该对你的帖子进行消毒处理! :P - Aram Verstegen
几乎没有意义,所有的修订版本都可用。不过我还是做了。 - Georg Schölly
是的,你现在需要更改该帐户的密码。此外,在JS中创建ActiveXObjects让我感到非常害怕。 - annakata
请告诉我你在JavaScript中没有传递密码。这样非常不安全! - scunliffe
4个回答

26

完整的结构如下:

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

3
<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/

JavaScript异常处理 当JavaScript代码发生错误时,它会停止执行并抛出异常。这可能会导致应用程序崩溃或无法正常工作。为了避免这种情况,可以使用try-catch语句来捕获和处理异常。try块包含可能引发异常的代码,而catch块包含处理异常的代码。如果try块中的代码引发了异常,则会跳转到catch块并执行其中的代码。在catch块中,可以访问异常对象并根据需要执行适当的操作。此外,还可以使用finally块来执行一些清理操作,例如关闭文件或释放资源。


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

提醒一下,你发布的代码看起来有点丑陋(无意冒犯)。你是否可以使用DWR或其他JavaScript框架(根据你的语言选择)来隐藏后端的所有数据库连接,并让JavaScript调用后端代码并对响应进行处理呢?


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 */
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接