Урок 2

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

с червен цвят са забележките на преводача
Концепция - Съобщения за грешка  - Поправяне - Задача

Съдържание (в нов прозорец)

Концепция

Знаете ли, коя тема въобще не се обсъжда в нито една от милионите книги по JavaScript ? Съобщения за грешки. Вероятно, авторите на тези книги предполагат, че вие от първия път ще направите всичко правилно и никога няма да получите такива съобщения. Време е да свалите розовите очила.

Ако вие поне веднъж сте се опитвали да пишете JavaScript или да поставите готов на своя страница, тогава ви е известно, че този номер влиза в програмата за развлечения. Уж всичко е наред и изведнъж... оппаа! Изскача такъв прозорец:

грешка

Този прозорец е при интернет експлорер, ако сте с mozilla firefox, трябва да отидете в инструменти/конзола на грешките/грешки, там за същата грешка ще видите това: Грешка: syntax error Изходен файл: file://assig2.htm
Ред: 10
Изходен код: ...x

- като последното -...x - е самата грешка, това е едната грешка от задачата ви за този урок! (в"тук е отговора"най отдолу, е описана грешката)

Тук искам да ви разскажа, как да реагирате, ако браузера съобщава за грешка. Виждал съм хиляди такива прозорци. Започнете да пишете JavaScript, ще получите и вие вашия дял прозорци.

 

Съобщение за грешка

Oбикновенно грешките са два типа: на синтаксиса и на сценария. Грешка на синтаксиса означава печатна грешка или пропуснат текст. Грешка на сценария значи, че вие сте объркали местата на командите или поставили неправилни. Така или иначе, смисъла е един — някъде, нещо сте сгрешили.
Съществуват програми, които помагат при поправянето на грешки, този процес се казва «debugging» («премахване на бъгове, грешки»), но аз предпочитам да правя това ръчно. Всъщност това е по лесно отколкото изглежда.

.

Поправяне на грешки

Казват, че най-добрия начин да поправиш грешка е да не я допускаш, лесно е да се каже,но трудно се спазва. Въпреки това, грешките могат да се сведат до минимум, използвайки текстов редактор без полета. Освем това отделяйте за всяка команда JavaScript отделен ред. Няма смисъл от разделянето на дългите команди. Това само по себе си може да доведе до грешка. Но дори и за спазите всичко, съм сигурен , че всеки път когато пишете скрипт, ще получавате такива съобщения. Така че, нека видим как да ги поправяме.

В тези съобщения има и нещо хубаво: сами говорят, къде и в какво е проблема. Погледнете съобщението. Грешка на синтаксиса която се намира на ред 10. Освен това, съобщението казва, в какво се състои грешката. Би било чудесно да има такъв порядък и в HTML,нали?

Ред с грешката

Реда с грешката трябва да отброявате от началото на документа HTML, а не от първия ред JavaScript. Например, в документа по долу грешката е на ред 9. Грешка на синтаксиса, защото израза(instance) не завършва на реда, на който започва. Виждате, че скобата е прескочила на следващия ред?

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>

<SCRIPT LANGUAGE="javascript">
document.write("text for the page"
)
</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>  
(ред 11) </HTML>

Така че, бройте всички редове, даже празните.

Какво правим после ?

След като намерите израза с грешката, трябва да решите какво да правите. По-често това ще е синтактична грешка — или прекъснат ред, или печатна грешка, или двойнии кавички вместо единични и т.н.
Ако това е гречка на сценария, значи, командата, за която се съобщава, не се вписва в логическата последователност. Например, командата извиква бутон, а в скрипта е посочено текстово поле.

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

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

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

Тази грешка на сценария също се среща често. Тя означава че в скрипта нещо не е съгласувано. Аз винаги следя, да не впиша някой ред по-рано отколкото трябва. Ако грешката не е в това, пробвайте да изтриете грешния ред, като преди това го запаметите. Случват се и банални печатни грешки. Вгледайте се в текста внимателно, печатни грешки се случват по-често, отколкото може да си представите.

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

Вашата задача

Долу има линк към страница със скрипт. Браузера трябва да ви даде две съобщения за грешка. Поправете ги. Някои команди ще ви се сторят непознати , но това не е важно. От съобщенията ще получите достатъчно информация, за да оправите скрипта.
Ако скрипта заработи, то на страницата ще се появи днешната дата. Всеки линк ще се отвори в нов прозорец.

Подсказка: възможно е, първо да получите само едно съобщение. Втората грешка ще се появи, когато поправите първата.

Тук е скрипта с грешка

Тук е отговора

Концепция - Съобщения за грешка - Поправка - Задача

Напред към урок 3

автори Джо Бернс и Ендри Грауни. © EarthWeb Inc.
Превод и оформление ©
ganevv.