Как поймать NetworkError в JavaScript?

в консоли JavaScript Chrome, Если я запустил это:

var that = new XMLHttpRequest();
that.open('GET', 'http://this_is_a_bad_url.com', false);
that.send();

Я получаю преднамеренно ожидаемую ошибку:

NetworkError: A network error occurred.

Я хочу поймать это, поэтому я использую:

var that = new XMLHttpRequest();
that.open('GET', 'http://this_is_a_bad_url.com', false);
try {
  that.send();
} catch(exception) {
  if(exception instanceof NetworkError) {
    console.log('There was a network error.');
  }
}

тем не менее, я получаю сообщение об ошибке NetworkError не определяется:

ReferenceError: NetworkError is not defined

как я могу поймать NetworkError?

2 ответов


Я думаю, что вы имели в виду:

if(exception.name == 'NetworkError'){
   console.log('There was a network error.');
}

Я не верю, что ошибка-это экземпляр NetworkError, но брошенный таким образом:

throw {
   name: 'NetworkError',
   message: 'A network error occurred.'
   // etc...
}

посмотреть в onreadystatechange событие. Вы можете получить статус ответа.