Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2015, 13:03
Кандидат Javascript-наук
Отправить личное сообщение для soltx Посмотреть профиль Найти все сообщения от soltx
 
Регистрация: 19.05.2013
Сообщений: 144

Ошибки при отсутсвии элементов
Привет! иногда возникают ошибки, например если вызвать карту google map и если отсутствует элемент на странице вызова в консоли всплывает ошибка, как бороться?
пока делаю так: проверяю на присутствие элемента, если ок, то запускаю.
может кто подскажет другой способ?
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2015, 13:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Какой еще элемент?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2015, 13:51
Кандидат Javascript-наук
Отправить личное сообщение для soltx Посмотреть профиль Найти все сообщения от soltx
 
Регистрация: 19.05.2013
Сообщений: 144

допустим <div id="map"></div> отображается только на одной странице в разделе контакты, а скрипт на всех страницах и ошибка выскакивает там где нет <div id="map"></div>
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2015, 13:54
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Есть способ: задействовать try.
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2015, 14:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от SV0L0CH
Есть способ: задействовать try.
Есть конечно. Но нафига? Получается ты намеренно допускаешь ошибку. Зачем?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2015, 06:38
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от danik.js Посмотреть сообщение
Есть конечно. Но нафига?
Одним try можно заменить дофига длинных проверок в if.
Хоть конкретно в данной задаче это не даст ровно никаких преимуществ, но человек спрашивает именно про способы.
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2015, 10:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от SV0L0CH
Одним try можно заменить дофига длинных проверок в if.
Нельзя. На первой же ошибке выполнение кода прервется и остальные "длинные" проверки даже не будут проверены.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 22.01.2015, 10:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Поэтому ты предлагаешь заменить код:

var someElement = document.querySelector('.selector');
if (someElement)
    doSomething(someElement);

На такой:
var someElement = document.querySelector('.selector');
try {
    doSomething(someElement);
} catch (e) {}


Это глупо.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2015, 12:08
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

danik.js,
Все необходимые проверки уже реализованы в doSomething. Зачем их придумывать самому повторно? Это же глупость!
Разумней воспользоваться исключениями как частью API.
Ответить с цитированием
  #10 (permalink)  
Старый 22.01.2015, 12:44
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от SV0L0CH
Разумней воспользоваться исключениями как частью API.
Возможно, но только если исключение не "Cannot read property 'blalba' of null".
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код при добавление новых элементов dima85 jQuery 12 26.09.2015 12:27
Добавление обработчика событий при добавлении элементов vladimircape Events/DOM/Window 3 13.09.2012 09:57
Подружить два скрипта (скроллер+скрипт эффекта при наведении) Che jQuery 26 29.08.2012 10:59
Как выполнить код javascript при инклюде странички на php wfire jQuery 7 27.05.2011 14:43
getAllResponseHeaders() и status имеют смысл только при readyState==4? mister_maxim AJAX и COMET 7 27.03.2011 19:08