После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть? |
Сообщения об ошибках
Концепция
В большинстве книг по JavaScript почти не рассматриваются сообщения об ошибках.
Видимо, авторы предполагают, что все делается правильно с самого первого раза и такие сообщения никогда не появляются. Добро пожаловать в реальный мир!
Если вы хотя бы раз пытались написать сценарий JavaScript или использовать на Web-странице готовый, то вам должно быть знакомо это чувство, которое возникает, когда вы считаете, что уже все в порядке и тут... бац! Выскакивает такое окошко:
В этом учебнике мы расскажем, что делать, когда возникают сообщения об ошибках. Когда вы начнете писать сценарии JavaScript, они будут появляться постоянно, так как являются неотъемлемой частью процесса создания.
Пожалуйста, запомните! В более поздних версиях MSIE и Navigator это окошко может не появляться.
При использовании MSIE сообщение об ошибке появится сначала как треугольный значок в нижнем левом углу. В этом треугольнике будет находиться восклицательный знак. Будет также присутствовать текст, сообщающий, что на странице встретились ошибки. Щелкните на этом треугольнике, чтобы получить сообщение об ошибке, которое рассматривается в данном учебнике. Или, если вы хотите, чтобы окно ошибки выводилось сразу, без щелчка на значке, перейдите в меню Tools (Сервис) и выберите Internet Options (Свойства обозревателя). В Internet Options щелкните на вкладке Advanced (Дополнительно) и поставьте флажок у строки "Display a notification about every script error" (Показывать уведомление о каждой ошибке сценария).
Затем, в зависимости от конфигурации системы, вы сможете получить окно ошибки. В окне ошибки существует также кнопка "Details" (Подробнее), при нажатии на которую выводится текстовое описание ошибки.
При использовании более поздней версии Netscape Navigator в строке состояния выводятся указания пользователю. При возникновении ошибки будет предложено ввести javascript: в строке адреса. Затем будет выведена ошибка и соответствующее текстовое описание.
Сообщение об ошибке
В основном ошибки бывают двух типов: синтаксиса и времени выполнения. Ошибка синтаксиса означает опечатку или неправильную конфигурацию JavaScript. Ошибка времени выполнения означает, что была использована неправильная команда. В любом случае получается ошибка. Где-то что-то было перепутано.
Существуют программы, которые помогают исправлять ошибки и выполнять так называемый процесс отладки ("debugging"), но все можно сделать вручную. На самом деле это даже легче, чем можно подумать.
Исправление ошибок
Говорят, что наилучший способ исправить ошибку — это ее не совершать, но сказать легче, чем сделать. Тем не менее можно свести количество ошибок к минимуму, пользуясь текстовым редактором без полей. Кроме того, отводите каждой команде JavaScript отдельную строку. Ни к чему разбивать длинные строки на несколько коротких. Это само по себе может привести к ошибке. И все же, можно поспорить, что каждый раз, принимаясь за создание сценариев, вы будете получать такие сообщения. Так что давайте разберемся, как их устранять.
В этих всплывающих окошках сообщений об ошибке есть одна замечательная вещь: они сами говорят, где и в чем состоит проблема. Взгляните на сообщение. У нас синтаксическая ошибка, означающая неправильную конфигурацию сценария, и находится она на строке 29. Более того, сообщение об ошибке прямо указывает на проблемную область. Было бы неплохо иметь такое и в HTML?
Строка ошибки
Когда сообщение об ошибке указывает на строку ошибки, то строку с ошибкой нужно отсчитывать от самого верха документа HTML, а не от первой строки JavaScript. Например, в приведенном ниже документе допущена ошибка в строке 9. Это ошибка синтаксиса, так как экземпляр (параметра) не заканчивается на той же строке, где начался. Видите, как скобка перескочила на следующую строчку?
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE="javascript"> document.write("текст для страницы " ) </SCRIPT> </BODY> </HTML>
Но почему ошибка на строке 9, а не 8? Потому, что счет начинается с верхнего края документа HTML, не пропуская ни одной строки. Вот этот документ еще раз с пронумерованными строками.
(строка 1) <HTML> (строка 2) <HEAD> (строка 3) <TITLE></TITLE> (строка 4) </HEAD> (строка 5) <BODY> (строка 6) (строка 7) <SCRIPT LANGUAGE="javascript"> (строка 8) document.write("text for the page" (строка 9) ) (строка 10) </SCRIPT> (строка 11) </BODY> (строка 12) </HTML>
Так что считайте все строки, даже пустые.