06.10.2009, 18:40
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от x-yuri
|
а, собственно, почему бы и нет?
|
Может потому, что code-style в js другой?
B~Vladi,
т.е. предлагается в каждый обработчик каждого события добавлять код обработки ошибок, который по сути будет console.log, т.к. нам нужно только узнать об ошибке?
|
|
06.10.2009, 18:50
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Kolyaj
|
Может потому, что code-style в js другой?
|
Каждый дрочит так как хочет
Сообщение от Kolyaj
|
т.е. предлагается в каждый обработчик каждого события добавлять код обработки ошибок, который по сути будет console.log, т.к. нам нужно только узнать об ошибке?
|
Не совсем.
Предлагается возможность обработать ошибку события самому, если это нужно.
Если каждую ошибку обрабатывать не надо - можно установить свойство Debug для Event, передав туда код обработки. Этот Debug будет вызван в конце выполнения всех обработчиков. Если во время выполнения даётся указание прервать вызовы - Debug так же будет вызван, если есть ошибки.
Последний раз редактировалось B~Vladi, 06.10.2009 в 18:53.
|
|
06.10.2009, 18:54
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от B~Vladi
|
Каждый дрочит так как хочет
|
В команде-то пока не дрочил, я так понимаю? Все один да один?
Сообщение от B~Vladi
|
Предлагается возможность обработать ошибку на событие самому, если это нужно.
|
Мне нужно, чтобы браузер сообщил об ошибке, если она возникла, чтобы я ее потом исправил. В твоем варианте браузер мне ничего не сообщить, я сам должен заботиться о мониторинге массива errors.
|
|
06.10.2009, 18:57
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Kolyaj
|
В команде-то пока не дрочил, я так понимаю?
|
В последнее время только этим и занимаюсь
Просто я настолько хороший кодер, что на это закрывают глаза
Сообщение от Kolyaj
|
Мне нужно, чтобы браузер сообщил об ошибке, если она возникла, чтобы я ее потом исправил.
|
Значит надо бросать исключение... Правильно?!
Сообщение от Kolyaj
|
В твоем варианте браузер мне ничего не сообщить, я сам должен заботиться о мониторинге массива errors.
|
этот массив существует только для того случая, когда ошибка ожидается...
|
|
06.10.2009, 19:04
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Kolyaj,
а стоит ли вообще с этим париться? Не скажется ли на производительности, если мы каждый обработчик будем совать try/catch, нужен он там или нет? Может, лучше я сам в обработчике и проверку сделаю, если надо?
|
|
06.10.2009, 19:25
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от B~Vladi
|
Значит надо бросать исключение... Правильно?!
|
Не нужно его ловить, чтобы потом не бросать.
Сообщение от e1f
|
а стоит ли вообще с этим париться?
|
Конечно не стоит, я уже написал
Сообщение от Kolyaj
|
Не выпендриваться и добавлять обработчики специально для этого придуманными методами: attachEvent/addEventListener.
|
Сообщение от e1f
|
Не скажется ли на производительности, если мы каждый обработчик будем совать try/catch, нужен он там или нет?
|
Скажется.
Сообщение от e1f
|
Может, лучше я сам в обработчике и проверку сделаю, если надо?
|
А откуда ты знаешь, где ошибка возникнет?
|
|
06.10.2009, 19:27
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Ну, если наш обработчик не использует никаких глобальных переменных, не опирается на приведение типов, все корректно проверяет -- как там может возникнуть ошибка? Заворачивать вызов каждой функции в try/cacth -- имхо не очень выход.
|
|
06.10.2009, 19:32
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от e1f
|
Ну, если наш обработчик не использует никаких глобальных переменных, не опирается на приведение типов, все корректно проверяет -- как там может возникнуть ошибка?
|
Действительно, и откуда они берутся, эти ошибки, ума не приложу. Сидишь, бывает, дебажишь и думаешь, и откуда она взялась.
|
|
06.10.2009, 23:45
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от B~Vladi
|
onerror - если передаётся true - ошибка в обработчике не остановит вызов других. Если false - остановит. Если передаётся функция - обработчик ошибки и возвращает false - вызовы остановятся. Если ничего не передано - вызовы будут останавливаться. Так норм?!
|
я тебе такого не советовал. Я бы тебе Микеланджело процитировал: "Beauty is the purgation of superfluities". Вот ты все добавляешь функциональность и добавляешь, а она тебе нужна? Apache тоже становился все жирнее и жирнее, и вот теперь есть nginx, lighttpd. Фактически тебе эти обработчики ошибок в обработчиках не пригодятся. Тебе просто нужно сообщать об ошибках, если они возникают. Если обработчик рассчитывает на ошибки, он должен их сам перехватывать. Реальных ситуаций с взаимосвязанными обработчиками я не вижу (если ошибка в первом, второй не должен выполниться). Так как ты назначаешь служебный обработчик, значит он должен ловить исключения и отправлять их по-дальше: setTimeout(function () { throw ... }, 0); Только надо добавить информацию о том, где произошло исключение
p.s. я бы из всего функционала реализовал бы только fixEvents. Не приходит в голову конкретных ситуаций, когда мне остальное может пригодиться
|
|
07.10.2009, 10:24
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Есть некоторые мысли. Да, действительно всё это лишнее. Как родится новый код - отпишусь.
|
|
|
|