06.10.2009, 15:04
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Вот я повесил обработчик события на document. Внутри обработчика ошибка, но я о ней не узнаю, т.к. она подавляется.
|
|
06.10.2009, 15:07
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Такой пример:
Event.Add(ele,'click',caller);
function caller(){
error();
}
function error(){
document.createElement();
}
Даже если исключение происходит не в обработчике - оно ловится в try и добавляется в errors. Т.е. ошибку мы поймаем в любом случае.
Сообщение от Kolyaj
|
т.к. она подавляется.
|
Она не подавляется... интерпретатор сам останавливает выполнение функции... А узнать об ошибке можно из errors.
|
|
06.10.2009, 15:09
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
а как ты узнаешь, что ошибка попала в errors? setTimeout или событие?
|
|
06.10.2009, 15:13
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от x-yuri
|
а как ты узнаешь, что ошибка попала в errors? setTimeout или событие?
|
Это можно узнать из следующего обработчика из списка, еси оно вызывается, а так же из всплывающих событий, т.е. объект event там тот же (event.errors).
Добавил run в код библиотеки, чтобы можно было потестить на форуме.
|
|
06.10.2009, 15:14
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
x-yuri,
Да, хорошо бы API вида
Event.Add(ele, type, {
callback: fnc,
onerror: function() {
//do something...
}
});
B~Vladi,
а если нет уже ни всплытия, ни другого обработчика?
Event.Add(document, 'click', function(){}) //это первый и последний бинд клика на документ, и в нем мб ошибка
Последний раз редактировалось e1f, 06.10.2009 в 15:16.
|
|
06.10.2009, 15:16
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от e1f
|
Да, хорошо бы API вида
|
Аха, это мысль!
Именно такого вида?!
А если в onerror ошибка?
|
|
06.10.2009, 15:19
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от B~Vladi
|
А если в onerror ошибка?
|
А если в коде самого фреймворка ошибка?
Частично может помочь window.onerror
|
|
06.10.2009, 15:26
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от e1f
|
А если в коде самого фреймворка ошибка?
|
jQuery и тот нередко падает от кривых параметров
|
|
06.10.2009, 15:34
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
B~Vladi,
бывает, чего греха таить
|
|
06.10.2009, 15:49
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Добавил предложенное API. Теперь можно передавать обработчики как простой функцией, так и:
{handler:fnc,onerror:fnc}
Если же onerror небыло передано и возникла ошибка, она добавится в массив errors объекта event. Так пойдёт?!
При удалении тоже можно передавать как объект, так и функцию
Давайте ещё предложения!
Последний раз редактировалось B~Vladi, 06.10.2009 в 16:07.
|
|
|
|