Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #261 (permalink)  
Старый 06.10.2009, 18:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от x-yuri
а, собственно, почему бы и нет?
Может потому, что code-style в js другой?

B~Vladi,
т.е. предлагается в каждый обработчик каждого события добавлять код обработки ошибок, который по сути будет console.log, т.к. нам нужно только узнать об ошибке?
Ответить с цитированием
  #262 (permalink)  
Старый 06.10.2009, 18:50
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
Может потому, что code-style в js другой?
Каждый дрочит так как хочет

Сообщение от Kolyaj
т.е. предлагается в каждый обработчик каждого события добавлять код обработки ошибок, который по сути будет console.log, т.к. нам нужно только узнать об ошибке?
Не совсем.
Предлагается возможность обработать ошибку события самому, если это нужно.
Если каждую ошибку обрабатывать не надо - можно установить свойство Debug для Event, передав туда код обработки. Этот Debug будет вызван в конце выполнения всех обработчиков. Если во время выполнения даётся указание прервать вызовы - Debug так же будет вызван, если есть ошибки.

Последний раз редактировалось B~Vladi, 06.10.2009 в 18:53.
Ответить с цитированием
  #263 (permalink)  
Старый 06.10.2009, 18:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от B~Vladi
Каждый дрочит так как хочет
В команде-то пока не дрочил, я так понимаю? Все один да один?

Сообщение от B~Vladi
Предлагается возможность обработать ошибку на событие самому, если это нужно.
Мне нужно, чтобы браузер сообщил об ошибке, если она возникла, чтобы я ее потом исправил. В твоем варианте браузер мне ничего не сообщить, я сам должен заботиться о мониторинге массива errors.
Ответить с цитированием
  #264 (permalink)  
Старый 06.10.2009, 18:57
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
В команде-то пока не дрочил, я так понимаю?
В последнее время только этим и занимаюсь
Просто я настолько хороший кодер, что на это закрывают глаза
Сообщение от Kolyaj
Мне нужно, чтобы браузер сообщил об ошибке, если она возникла, чтобы я ее потом исправил.
Значит надо бросать исключение... Правильно?!
Сообщение от Kolyaj
В твоем варианте браузер мне ничего не сообщить, я сам должен заботиться о мониторинге массива errors.
этот массив существует только для того случая, когда ошибка ожидается...
Ответить с цитированием
  #265 (permalink)  
Старый 06.10.2009, 19:04
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Kolyaj,
а стоит ли вообще с этим париться? Не скажется ли на производительности, если мы каждый обработчик будем совать try/catch, нужен он там или нет? Может, лучше я сам в обработчике и проверку сделаю, если надо?
Ответить с цитированием
  #266 (permalink)  
Старый 06.10.2009, 19:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от B~Vladi
Значит надо бросать исключение... Правильно?!
Не нужно его ловить, чтобы потом не бросать.

Сообщение от e1f
а стоит ли вообще с этим париться?
Конечно не стоит, я уже написал
Сообщение от Kolyaj
Не выпендриваться и добавлять обработчики специально для этого придуманными методами: attachEvent/addEventListener.
Сообщение от e1f
Не скажется ли на производительности, если мы каждый обработчик будем совать try/catch, нужен он там или нет?
Скажется.

Сообщение от e1f
Может, лучше я сам в обработчике и проверку сделаю, если надо?
А откуда ты знаешь, где ошибка возникнет?
Ответить с цитированием
  #267 (permalink)  
Старый 06.10.2009, 19:27
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Ну, если наш обработчик не использует никаких глобальных переменных, не опирается на приведение типов, все корректно проверяет -- как там может возникнуть ошибка? Заворачивать вызов каждой функции в try/cacth -- имхо не очень выход.
Ответить с цитированием
  #268 (permalink)  
Старый 06.10.2009, 19:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от e1f
Ну, если наш обработчик не использует никаких глобальных переменных, не опирается на приведение типов, все корректно проверяет -- как там может возникнуть ошибка?
Действительно, и откуда они берутся, эти ошибки, ума не приложу. Сидишь, бывает, дебажишь и думаешь, и откуда она взялась.
Ответить с цитированием
  #269 (permalink)  
Старый 06.10.2009, 23:45
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 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. Не приходит в голову конкретных ситуаций, когда мне остальное может пригодиться
Ответить с цитированием
  #270 (permalink)  
Старый 07.10.2009, 10:24
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Есть некоторые мысли. Да, действительно всё это лишнее. Как родится новый код - отпишусь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск