Форум города Днепр (Днепропетровска)

Форум города Днепр (Днепропетровска) (http://forum.dneprcity.net/index.php)
-   Javascript (http://forum.dneprcity.net/forumdisplay.php?f=157)
-   -   Сообщения об ошибках (http://forum.dneprcity.net/showthread.php?t=8561)

Strelok 30.09.2010 20:02

Сообщения об ошибках
 
Концепция

Знаете, какая тема вообще не обсуждается ни в одной из миллиона книг по JavaScript, которые я перечитал? Сообщения об ошибках. Вероятно, авторы этих книг полагают, что вы с самого первого раза все делаете правильно и никогда не получаете таких сообщений. Пора снять розовые очки.

Если вы хоть раз пытались написать JavaScript или вставить готовый на свою страницу, тогда вам известно, что этот номер входит в программу развлечений. Вроде бы уже все в порядке и тут... бац! Выскакивает такая штука:

http://www.ph4.ru/js/jsp/i/error.gif

Сегодня я собираюсь рассказать вам, как реагировать, если браузер сообщает об ошибке. Я такие окна видел тысячами. Начнете писать JavaScript, тоже получите свою долю.






Сообщение об ошибке

В основном бывают ошибки двух типов: синтаксиса и сценария. Ошибка синтаксиса означает опечатку или пропущенный текст. Ошибка сценария значит, что вы перепутали местами команды или вставили неправильные. Так или иначе, дело в одном — где-то вы напутали.
Существуют программы, которые помогают исправлять ошибки, этот процесс называется «debugging» («уничтожение багов, ошибок»), но я все же предпочитаю делать это вручную. На самом деле это даже легче, чем можно подумать.




Исправление ошибок

Говорят, что наилучший способ исправить ошибку — это ее не совершать, но сказать проще, чем сделать. Тем не менее можно свести ошибки к минимуму, пользуясь текстовым редактором без полей. Кроме того, отводите каждой команде JavaScript отдельную строку. Ни к чему разбивать длинные строки на несколько коротких. Это само по себе может привести к ошибке. И все же, готов спорить, что каждый раз, принимаясь за скрипты, вы будете получать такие сообщения. Так уж давайте разберемся, как их устранять.

В этих всплывающих окошках есть одна замечательная вещь: они сами говорят, где и в чем состоит проблема. Взгляните на сообщение. Это ошибка сценария, и находится она на строке 23. Более того, сообщение прямо говорит, в чем состоит ошибка. Разве не здорово было бы завести такой порядок и в HTML?

Строка ошибки

Строку с ошибкой нужно отсчитывать от самого верха документа HTML, а не от первой строки JavaScript. Например, в приведенном ниже документе допущена ошибка на строке 9. Это ошибка синтаксиса, так как пример (instance) не заканчивается на той же строке, где и начался. Видите, как скобка перескочила на следующую строчку?











Но почему ошибка на строке 9, а не 8? Потому, что вы начинаете считать с верхнего края документа HTML, не пропуская ни одной строчки. Вот этот документ еще раз с пронумерованными строчками.

(строка 1)
(строка 2)
(строка 3)
(строка 4)
(строка 5) (строка 6)
(строка 7)
(строка 11)
(строка 11)

Так что, считайте все строки, даже пустые.

Ну и что дальше?

Как только вы нашли строку с ошибкой, необходимо решить, что делать. Чаще всего это будет синтаксическая ошибка — либо разорванная строка, либо опечатка, либо двойные кавычки вместо одинарных и тому подобное.
Если это ошибка сценария, значит, команда, на которую указывает сообщение, не укладывается в логическую последовательность. Например, команда вызывает кнопку, а в скрипте на самом деле указано текстовое поле.

Многократные сообщения

Ничто не раздражает меня больше, чем многократные сообщения об ошибках. Можно только сидеть и смотреть, как на экране плодятся окошки. Когда-то я думал, что многократные окна означают многократные ошибки. Не всегда.
JavaScript — это чрезвычайно логичный язык, требующий, чтобы все шло своим чередом, друг за дружкой. Допустим, у вас 10 ошибок в длинном скрипте. Сообщения накладываются одно на другое, и последняя обнаруженная компьютером ошибка окажется сверху. Не набрасывайтесь на нее сразу, возможно, в действительности ее даже не существует.
Может случиться так, что первая ошибка в скрипте и вызовет все остальные. Так что исправлять их следует от начала документа HTML. Сколько раз было так, что у меня выскакивало штук 20 окон, а разрешить проблему удавалось исправлением одной единственной первой ошибки!
Поэтому я советую вам исправлять ошибки по одной от начала до конца. И каждый раз, исправив одну ошибку, запускайте скрипт. Можно получить 20 окошек с восклицательным знаком, а исправлять придется одну или две ошибки.

Определение отсутствует

Эта ошибка сценария тоже частенько встречается. Она означает, что в скрипте что-то не согласовано. Я всегда слежу за тем, чтобы не вписать какую-нибудь строку раньше, чем нужно. Если дело не в этом, попробуйте стереть строку с ошибкой, ведь ее всегда можно вернуть на место. Случаются и банальные опечатки. Приглядитесь к тексту повнимательнее, опечатки случаются чаще, чем можно себе представить.

Вот практически все, что на данном этапе можно сказать про ошибки. Теперь у вас хватит знаний, чтобы исправить 99% подобных неприятностей. Просто помните, что сообщение — это на самом деле плюс. Без них нам пришлось бы сидеть, тупо уставясь в пустую страницу, не имея ни малейшего понятия, в чем проблема.


Текущее время: 20:47. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2024, vBulletin Solutions Inc. Перевод: zCarot