-1

我正在尝试使用错误处理 try/catch 来捕获 Ajax 错误,但它不起作用。这是我的代码:

var ajaxrequest=null
if (window.ActiveXObject){ 
 try {
  ajaxrequest=new ActiveXObject("Msxml2.XMLHTTP")
 } 
 catch {
  try{
   ajaxrequest=new ActiveXObject("Microsoft.XMLHTTP")
  } //end inner try
  catch {
   alert("NOT WORKING!!")
  } //end inner catch
 } //end outer catch
}
else if (window.XMLHttpRequest) // if Mozilla, Safari etc
 ajaxrequest=new XMLHttpRequest()

ajaxrequest.open('GET', 'inventory.php', true) //do something with request

我做错了什么?

4

2 回答 2

1

您错过了要捕获的参数。它应该是 catch(ex)。这是修复:

if (window.ActiveXObject){ 
 try {
  ajaxrequest=new ActiveXObject("Msxml2.XMLHTTP")
 } 
 catch (ex){
  try{
   ajaxrequest=new ActiveXObject("Microsoft.XMLHTTP")
  } //end inner try
  catch (ex){
   alert("NOT WORKING!!")
  } //end inner catch
 } //end outer catch
}
于 2013-10-31T19:55:12.300 回答
0

使用不带任何参数的 catch 子句会导致SyntaxError: Unexpected token {. 捕获异常的正确方法如下所示:

try {
    // some code which probably causes exception
} catch(e) {
    // do something with the exception
}

查看有关JavaScript 中异常处理的文档。

于 2013-10-31T20:00:15.950 回答