Javascript на событие броска? - PullRequest
       11

Javascript на событие броска?

0 голосов
/ 22 декабря 2011

Есть ли способ в Javascript слушать события броска?

Я хочу, чтобы можно было вызывать обработчик событий, даже когда выполняется такой код:

var hi = "hi";
try {
  throw hi;
}
catch (e) {

}

В chrome (и, возможно, и в firebug) вы можете запустить этот код и нажать «разбить на все ошибки», и он будет разбит на этой строке броска. Как именно они это делают? Это за пределами Javascript?

Ответы [ 3 ]

2 голосов
/ 22 декабря 2011

Как они это делают - движок JavaScript не продолжает ошибки, он вылетает при всех ошибках, как если вы компилируете c ++, это не языковая функция, это браузер

0 голосов
/ 19 декабря 2012

Вы приняли неверный ответ.

Если у вас есть ошибка, которая происходит не в блоке try {} catch() {}, то выполнение JavaScript действительно прервется в этой точке.

Однако, если вы заключите свой возможно взломанный код в try {} catch() {}, вы можете использовать re- throw ошибку, которая будет обработана одним глобальным обработчиком событий:

window.onerror = function (error) {
  // access `error` object
};

try {
  // for example try to assign property to non-existing object
  undefinedObj[property] = 1;
}
catch (error) {
  // `error` object will be available in `onerror` handler above
  throw new Error(error);
}
0 голосов
/ 22 декабря 2011

Это не событие, а исключение, обработчик помещается в блок catch:

try {
    //....
}
catch (e) {
    // exception handling here
    // or may be fire/trigger some event here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...