Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获jQuery错误句柄抛出_Javascript_Jquery_Exception Handling - Fatal编程技术网

Javascript 未捕获jQuery错误句柄抛出

Javascript 未捕获jQuery错误句柄抛出,javascript,jquery,exception-handling,Javascript,Jquery,Exception Handling,因此,我有以下失败的ajax查询。调用ajaxError并引发异常。但不幸的是,这个例外并没有被抓住。你知道怎么抓住它吗 try { function ajaxError(request, type, message) { throw 'ajaxerror ' + type + ' ' + message; } jQuery.ajax({ url: 'http://nonexisting-example.com', error: ajaxError,

因此,我有以下失败的ajax查询。调用ajaxError并引发异常。但不幸的是,这个例外并没有被抓住。你知道怎么抓住它吗

try {
  function ajaxError(request, type, message) {
    throw 'ajaxerror ' + type + ' ' + message;
  }

  jQuery.ajax({
      url: 'http://nonexisting-example.com',
      error: ajaxError,
  });
}
catch (error) {
  alert('This: ' + error);
}

这是因为ajax是异步的,当您的ajaxError func实际被调用时,catch块已经被传递。如果您想捕捉在ajax调用过程中出现的错误,可以执行以下操作:

function ajaxError(request, type, message) {
    try {
      throw 'ajaxerror ' + type + ' ' + message;
    } catch (error) {
      alert('This: ' + error);
    }

  }
  jQuery.ajax({
      url: 'http://nonexisting-example.com',
      error: ajaxError,
  });

或者您可以应用发布/订阅模式来捕获异步错误

我需要的是一种从ajax回调遍历错误的方法。但是,像.done(函数(){callback(data,error);})这样的回调将被证明是正确的。我只是希望有一个更好的解决方案,在搜索过程中忘记了原来的解决方案可能在某种程度上是美丽的。但是谢谢你的书面回答。