27

Chrome の JavaScript コンソールで、これを実行すると:

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 をキャッチするにはどうすればよいですか?

4

4 に答える 4

25

あなたが意味したのは次のことだと思います:

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

エラーが のインスタンスだとは思いませんが、次のNetworkErrorようにスローされます。

throw {
   name: 'NetworkError',
   message: 'A network error occurred.'
   // etc...
}
于 2013-11-27T01:08:55.947 に答える